比较全面的php分页导航类

本文介绍了一种提升用户体验的瀑布流分页技术,并提供了具体的实现方式,同时对比传统分页的优势。此外,还分享了一款移动端上拉加载、下拉刷新插件的使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

瀑布流分页当浏览者浏览了当前页面内容后,向下拉动浏览器滚动条,本来还在服务器上的内容,会根据滚动条的拖动,动态地从服务器上按一定的单位(类似分页)下载下来。这样还带来了一个好处,就是以前已经浏览过的内容,还在浏览器当前窗口的上部(可以理解为被缓存了),要再次浏览的话,直接向上拖动滚动条或转动鼠标 滚轮即可。而采用分页技术的话,要查看先前的内容,必需再次点击鼠标(比如“上一页”等),再次请求服务器端的页面(假设没有采用缓存技术的),再次等待 页面数据的下载和呈现 。实现这种浏览效果,可以改善用户体验(最起码有新鲜感),编程技术也不难,采用 Ajax 技术是一种绝好的解决方案之一。希望更好的用户体验被大家创造出来。

 

分页存储过程http://hudeyong926.iteye.com/blog/764703

var page = 0;
$(function () {
    var scrollTimer;
    jsonScrollPageData(0);//默认加第一页

    //下面滚动取第二页++
    $(window).on('scroll', function () { //页面出现滚动条生效,即滚动事件
        if (scrollTimer) {
            clearTimeout(scrollTimer);
            scrollTimer = null;
        }
        scrollTimer = setTimeout(function () {
            jsonScrollPageData($(this).scrollTop());
        }, 200);//0.2s
    });
});

function jsonScrollPageData(position) {
    var offsetHeight = 44;
    var viewportHeight = $(window).height();
    var bodyHeight = $('body').height();

    if ((bodyHeight <= position + viewportHeight + offsetHeight) && page >= 0) {
        $.ajax({
            type: 'GET',
            url: url + "?t=" + Math.random(),
            data: {page: ++page},
            async: false,
            dataType: 'JSON',
            success: function (jsonData) {
                if (jsonData.length > 0) {

                } else { //已全部显示
                    page = -1;
                }
            }
        });
    }
}
移动端上拉加载下拉刷新插件
<div class="container">
    <div id="mescroll" class="my-address mescroll">
        <div id="addressList" class="address-list">
            <!-- 这里是ajax返结果list -->
        </div>
    </div>
</div>
  需要注意的地方是页面的container必须有固定高度,否则上拉无效。前后端的pagesize必须要相同
//创建MeScroll对象
var mescroll = new MeScroll("mescroll", {
    up: {
        callback: upCallback, //上拉加载的回调
        clearEmptyId: "addressList",
        htmlNodata: '<p class="upwarp-nodata">-- 已经到底了 --</p>',
        noMoreSize: 5, //这个是当页面显示不足这个数字的时候不显示到底定义的文字,比如不满足5条,则不显示htmlNodata  
    }
});

//上拉加载的回调 page = {num:1, size:10}; num:当前页 默认从1开始, size:每页数据条数,默认10
function upCallback(page) {
    $.ajax({
        url: '/screen/ajaxList?page=' + page.num + '&pageSize=' + page.size,
        dataType: 'json',
        type: 'GET',
        success: function (json) {
            console.log(json)
            var data = json.data;
            var _html = $('#addressListTmpl').render(data);
            $('#addressList').append(_html);
            //必传参数(总数据个数, 总页数)
            mescroll.endByPage(curPageData.length, totalPage);
        },
        error: function (e) {
            //联网失败的回调,隐藏下拉刷新和上拉加载的状态
            mescroll.endErr();
        }
    });
}
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值