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

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

前端代码:

<!--思路:向下滑动触发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'); 
    }
}

?>

 

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值