美文网首页
thinkphp5 向下滑动触发“ 加载更多 ”;ajax 异步

thinkphp5 向下滑动触发“ 加载更多 ”;ajax 异步

作者: zhaoxiaohui520 | 来源:发表于2020-03-31 10:57 被阅读0次

实现效果:手机页面向下滚动加载数据

image.png

前端代码:

<!--思路:向下滑动触发ajax,向后台请求数据,如果能取回数据,则更新偏移量,反之提醒无更多数据-->
<div class="list-box">
    {volist name="jifen_list" id="vo"}
        <div class="list">
            <div class="pull-left list-l">
                <h5>{$vo.reward_type}</h5>
                <h5>{$vo.create_time|date="Y-m-d",###}</h5>
            </div>
            {if condition="$vo.jifen_num>=0"}
                <div class="pull-right list-r">+{$vo.jifen_num}</div>
            {else /}
                <div class="pull-right list-r">-{$vo.jifen_num}</div>
            {/if}
        </div>
    {/volist}
    <input type="hidden" id="more_div">
</div>
<!--隐藏域:用以存储异步加载偏移量-->
<input type="hidden" id="offect" value="8" />
<!--加载状态-->
<div class="no-more" id="show_more">没有更多了</div>

javascript 代码:

<script>
    $(window).scroll(
        function() {
        var scrollTop = $(this).scrollTop();
        var scrollHeight = $(document).height();
        var windowHeight = $(this).height();
        if (scrollTop + windowHeight == scrollHeight) {
            $("#show_more").html('数据加载中');
            $offect = $("#offect").val();
            $.post('{:url("home/mmember/my_integral")}',{offect:$offect}, function(data){
                if(data != -1){
                    var to_array = eval("("+data+")");
                    var str = "";
                    for(var p in to_array){
                        str += '<div class="list"><div class="pull-left list-l"><h5>'+to_array[p].reward_type+'</h5><h5>'+to_array[p].create_time+'</h5></div>';
                        if(to_array[p].size == 'positive'){
                            str += '<div class="pull-right list-r">+'+to_array[p].jifen_num+'</div></div>';
                        }else{
                            str += '<div class="pull-right list-r">-'+to_array[p].jifen_num+'</div></div>';
                        }
                    }
                    $("#offect").val($offect*1+8);
                    $("#more_div").before(str);
                }else{
                    $("#show_more").html('没有更多数据了');
                }
            }, 'json'); 
        }
    });
</script>

后台数据接收:

<?php
public function my_integral(){
    //我的积分
    $member_id = Session::get("member_id");
    $member_jifen = Db::name("member")->field('jifen_account')->where("id",$member_id)->find();
    $jifen_list = Db::name("jifen_history")->where("member_id",$member_id)->order("create_time desc")->limit(8)->select();
 
    $input_post = input("post.");
    if(isset($input_post) && !empty($input_post)){
        $offect = $input_post['offect'];
        $show_list = Db::name("jifen_history")->where("member_id",$member_id)->order("create_time desc")->limit($offect,8)->select();
        if(isset($show_list) && !empty($show_list)){
            foreach($show_list as $key=>$item){
                $show_list[$key]['create_time'] = date("Y-m-d",$item['create_time']);
                if($item['jifen_num']>0){
                    $show_list[$key]['size'] = 'positive';
                }else{
                    $show_list[$key]['size'] = 'negative';
                }
            }
            return json_encode($show_list);
        }else{
            return -1;
        }
    }else{
        $this->assign("member_jifen",$member_jifen);
        $this->assign("jifen_list",$jifen_list);
        return $this->fetch('my_integral'); 
    }
}
 
?>
 

相关文章

  • thinkphp5 向下滑动触发“ 加载更多 ”;ajax 异步

    实现效果:手机页面向下滚动加载数据 前端代码: javascript 代码: 后台数据接收:

  • 实现瀑布流类似功能

    思路:判断当前页面是否滑动到底部,若滑动到底部则使用ajax异步加载接下来的内容,使用append插入到当前页面中...

  • 2019-01-14 ajax,jsonp,jQuery-jso

    ajax() 方法通过 HTTP 请求加载远程数据。AJAX = 异步 JavaScript 和 XML(Asyn...

  • ajax(实现加载更多)

    题目1:ajax 是什么?有什么作用? ajax是异步的javascript和xml 1优点 实现网页的异步加载,...

  • android list view 监听滑到底部

    Android中的应用就是ListView中向下滑动加载更多的功能,不要再onScroll方法中进行判断,那样当滑...

  • ajax--总结

    一、什么是AJAX? AJAX = 异步 JavaScript 和 XML。 AJAX 是一种在无需重新加载整个网...

  • Ajax

    什么是Ajax? ajax全称:Asynchronous JavaScript XML 是一种异步加载数据的技术 ...

  • AJAX异步加载

    异步加载的方案: 动态插入 script 标签 通过 ajax 去获取 js 代码,然后通过 eval 执行 sc...

  • Ajax技术是什么东西

    Ajax是什么东西? 使用AJAX的网页,内容是异步加载的。没有使用AJAX的网页,在网页完全打开的时候,加载就完...

  • 后端分页实现与比较

    背景 最近在开发小程序时,有一个业务场景,需要向上滑动加载更多数据、向下滑动刷新数据的需求。 一接到需求,脑海里立...

网友评论

      本文标题:thinkphp5 向下滑动触发“ 加载更多 ”;ajax 异步

      本文链接:https://www.haomeiwen.com/subject/tztwuhtx.html