最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

js如何实现页面的滚动条下拉时加载更多(附代码)

来源:动视网 责编:小采 时间:2020-11-27 19:31:51
文档

js如何实现页面的滚动条下拉时加载更多(附代码)

js如何实现页面的滚动条下拉时加载更多(附代码):本篇文章给大家带来的内容是关于js如何实现页面的滚动条下拉时加载更多(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。在手机上,数据列表的分页都是下拉到底部的时候会加载更多,但是,去年三月份的时候遇到了客户要求web页面
推荐度:
导读js如何实现页面的滚动条下拉时加载更多(附代码):本篇文章给大家带来的内容是关于js如何实现页面的滚动条下拉时加载更多(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。在手机上,数据列表的分页都是下拉到底部的时候会加载更多,但是,去年三月份的时候遇到了客户要求web页面


本篇文章给大家带来的内容是关于js如何实现页面的滚动条下拉时加载更多(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

在手机上,数据列表的分页都是下拉到底部的时候会加载更多,但是,去年三月份的时候遇到了客户要求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) {
 
 });
}

文档

js如何实现页面的滚动条下拉时加载更多(附代码)

js如何实现页面的滚动条下拉时加载更多(附代码):本篇文章给大家带来的内容是关于js如何实现页面的滚动条下拉时加载更多(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。在手机上,数据列表的分页都是下拉到底部的时候会加载更多,但是,去年三月份的时候遇到了客户要求web页面
推荐度:
标签: 加载 页面 的时候
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top