摘要:一个更佳的方式是,当滚动条距离底部一定距离时,就动态加载更多,向服务端请求资源。代码总页数当前页数滚动条距离底部的距离没有更多了分页列表的接口相关参考页面在滚动条下拉时加载更多内容个人项目经验下拉加载更多实现监听滚动事件不执行
js实现 web页面的滚动条下拉时加载更多
在手机上,数据列表的分页都是下拉到底部的时候会加载更多,但是,去年三月份的时候遇到了客户要求web页面也要下拉加载更多的需求,于是按照web页面在滚动条下拉时加载更多内容(个人项目经验)文中的代码实现了这个下拉加载,很简单的,代码如下:
var totalPages;//总页数 var pageno = 0;//当前页数 $(function(){ $(window).scroll(function() { var scrollTop = $(this).scrollTop(),scrollHeight = $(document).height(),windowHeight = $(this).height(); var positionValue = (scrollTop + windowHeight) - scrollHeight; if (positionValue == 0) { //do something if (pageno < totalPages - 1) { pageno++; doSomething(pageno); } else { alert("没有更多了"); } } }); ); function doSomething(pageno) { var url = "*******";//分页列表的接口 var data = { size: 5, start: pageno, }; $.getJSON(url, data, function (rtn) { }); }
但是,今天测试人员发现,当浏览器缩放了或者屏幕显示设置缩放时,就不能下拉加载了。时隔一年多,真是惊人@_@
经过调试,发现是有缩放时positionValue的值就无法等于0了,没法继续加载更多了,这时看到一篇文章下拉加载更多DEMO(js实现)中讲到:
如果等滚动条拉到底部时再加载,会影响用户体验。因为一般动态加载的时候都需要向服务端请求资源,这时需要时间。一个更佳的方式是,当滚动条距离底部一定距离(C)时,就动态加载更多,向服务端请求资源。也就是预加载,预读取。公式如下
this.scrollHeight - C == $(this).scrollTop() + $(this).height()
看完后收到启发,于是将positionValue的值设为大于等于-10,这里的10也就是滚动条距离底部一定距离(C)的值。
果然,没问题了,有缩放时也可以正常实现下拉加载。
于是,记录下来,分享给大家,共勉。
另外提醒一点,$(window).scroll(function()监听滚动事件不执行这个问题中的采纳答案提到:
html,body的高度样式如果设置为100%,$(window).scroll方法将检测不到正确的滚出高度(0),导致滚动监听事件失效,设置html,body{ height:auto }可以解决。代码
var totalPages;//总页数 var pageno = 0;//当前页数 var C = 10;//滚动条距离底部的距离 $(function(){ $(window).scroll(function() { var scrollTop = $(this).scrollTop(),scrollHeight = $(document).height(),windowHeight = $(this).height(); var positionValue = (scrollTop + windowHeight) - scrollHeight; if (positionValue >= -C) { //do something if (pageno < totalPages - 1) { pageno++; doSomething(pageno); } else { alert("没有更多了"); } } }); ); function doSomething(pageno) { var url = "*******";//分页列表的接口 var data = { size: 5, start: pageno, }; $.getJSON(url, data, function (rtn) { }); }相关参考
web页面在滚动条下拉时加载更多内容(个人项目经验)
下拉加载更多DEMO(js实现)
$(window).scroll(function()监听滚动事件不执行
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/97160.html
摘要:原文链接前言在移动端网页中,下拉刷新和上拉加载更多数据的交互方式出现频率很高,开源社区也有很多类似的解决方案,如,库等。 原文链接:justrockit.top 前言 在移动端H5网页中,下拉刷新和上拉加载更多数据的交互方式出现频率很高,开源社区也有很多类似的解决方案,如iscroll,pulltorefresh.js库等。下面是对这两种常见交互基本实现原理的阐述。 实现原理 下拉刷新...
摘要:原文链接前言在移动端网页中,下拉刷新和上拉加载更多数据的交互方式出现频率很高,开源社区也有很多类似的解决方案,如,库等。 原文链接:justrockit.top 前言 在移动端H5网页中,下拉刷新和上拉加载更多数据的交互方式出现频率很高,开源社区也有很多类似的解决方案,如iscroll,pulltorefresh.js库等。下面是对这两种常见交互基本实现原理的阐述。 实现原理 下拉刷新...
摘要:做一个简单的移动端展示项目,后台分页后前端加载,实现上拉加载下一页,找了下,还是用这个插件好一点安装不要使用安装导入在哪个页面使用则在哪个页面导入这里的话,我使用全局导入会出现问题若有错还请大家指出暂时想到的就是局部引入注册组件注册组件 做一个简单的移动端展示项目,后台分页后前端加载,实现上拉加载下一页,找了下,还是用这个mescroll.js插件好一点 1.npm安装 npm ins...
摘要:最近开始接触了小程序的开发,由于时间问题,文档阅读的并不完备,也踩了很多坑。的使用微信小程序不支持原生页面跳转,包括和,若要跳转小程序应用内页面,需要使用,详见。参考文献微信小程序开发者文档 最近开始接触了小程序的开发,由于时间问题,文档阅读的并不完备,也踩了很多坑。不得不说,微信的野心真是越来越大了,但是它超高的流量注定了它有这个资本。 原文地址:mini programs 目...
阅读 1116·2019-08-30 12:44
阅读 626·2019-08-29 13:03
阅读 2531·2019-08-28 18:15
阅读 2391·2019-08-26 10:41
阅读 3054·2019-08-26 10:28
阅读 3012·2019-08-23 16:54
阅读 1967·2019-08-23 15:16
阅读 780·2019-08-23 14:55