JQuery页面随滚动条动态加载效果的简单实现(推荐)


Posted in Javascript onFebruary 08, 2017

Google阅读器上有一个AJAX scollLoad效果很不错,就是阅读项目时不需要翻页,浏览器滚动条往下拉到一定位置时自动加载新的一批项目进来,一直到所有项目加载完为止。要知道,数据量增加很频繁时,要通过定位页码来找到目标数据似乎并没有什么意义。我觉得用户体验成熟的WEB应用程序应当引导用户使用TAG或搜索等功能来找到目标数据。至于浏览数据,尤其是浏览最新的数据,利用浏览器滚动条来加载,是很好的尝试……

我试着用jquery来实现这个功能。先要得到滚动条的总长属性值:scrollHeight,还有滚动条当前位置属性值:scrollTop。然后通过计算,若当前值位于总长值三分之二时加载新数据。假设DOM上有一个元素为,该元素overflow样式为scroll,也就是元素中的内容溢出元素指定高度时启用滚动条。利用jquery的load方法为元素加载一个已经存在的文件,我假设它是table.html。这个文件的内容可以是足以使浏览器滚屏的一张数据表。

jquery.js“>// 加载jquery库

var hght=0;//初始化滚动条总长
var top=0;//初始化滚动条的当前位置
$(document).ready(function() {//DOM的onload事件
$(”#mypage”).load(”table.html”);//table.html的内容被加载到 mypage元素

$(”#mypage”).scroll( function() {//定义滚动条位置改变时触发的事件。
hght=this.scrollHeight;//得到滚动条总长,赋给hght变量
top=this.scrollTop;//得到滚动条当前值,赋给top变量
});
});

setInterval(”cando();”,2000);//每隔2秒钟调用一次cando函数来判断当前滚动条位置。

function cando(){
if(top>parseInt(hght/3)*2)//判断滚动条当前位置是否超过总长的2 /3,parseInt为取整函数
show();//如果是,调用show函数加载内容。
}

function show(){
$.get(”table.html”, function(data){//利用jquery的get方法得到table.html内容
$(”#mypage”).append(data);//用append方法追加内容到mypage元素。
hght=0;//恢复滚动条总长,因为$(”#mypage”).scroll事件一触发,又会得到新值,不恢复的话可能会造成判断错误而再次加载……
top=0;//原因同上。
});
}

为什么要隔2秒钟调用一次判断呢?因为只要$(”#mypage”).scroll事件一被触发,就会影hght和top值,这个值可能总是满足cando 函数的判断,也就是top值总是位于hght的三分之二。因此可能会多次加载造成服务器负担加重。而每加载一次后把hght和top值赋0,也是这个原因。

这段代码的效果就是只要元素mypage的滚动条位置位于滚动条总长的三分之二时,追加table.html的内容到元素mypage 中去。当然这样运行是无休止地加载下去。在真正的AJAX运用中,table.html可以换成asp或php脚本,接收get或post参数来进行处理,然后返回有意义的数据。jquery的get方法可以设置get方式的参数数据,

比如:

$.get(”test.php”, { name: “boho”, id: “1″ } );

相当于http://hostlocal/test.php?name=boho&id=1

这种形式的http访问。然后通过get方法的回调函数来获取test.php输出的内容:

$.get(”test.php”, {name:”boho”,id:”1″},function(data){
alert(”Data Loaded: ” + data);
});

以上这篇JQuery页面随滚动条动态加载效果的简单实现(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
关于JavaScript的面向对象和继承有利新手学习
Jan 11 Javascript
javascript实现画不相交的圆
Apr 07 Javascript
js+css实现select的美化效果
Mar 24 Javascript
基于JS实现移动端访问PC端页面时跳转到对应的移动端网页
Dec 24 Javascript
浅谈JS原生Ajax,GET和POST
Jun 08 Javascript
jQuery增加、删除及修改select option的方法
Aug 19 Javascript
AngularJS动态绑定HTML的方法分析
Nov 07 Javascript
JQuery Ajax执行跨域请求数据的解决方案
Dec 10 jQuery
Vue.js 中的实用工具方法【推荐】
Jul 04 Javascript
微信小程序基于高德地图查找位置并显示文字
Oct 30 Javascript
vue实现购物车的监听
Apr 20 Javascript
如何使用JavaScript检测空闲的浏览器选项卡
May 28 Javascript
setTimeout学习小结
Feb 08 #Javascript
jquery uploadify如何取消已上传成功文件
Feb 08 #Javascript
js/jquery控制页面动态加载数据 滑动滚动条自动加载事件的方法
Feb 08 #Javascript
用move.js库实现百叶窗特效
Feb 08 #Javascript
浅谈js停止事件冒泡 阻止浏览器的默认行为(阻止超连接 #)
Feb 08 #Javascript
Move.js入门
Feb 08 #Javascript
jquery ajaxfileupload异步上传插件使用详解
Feb 08 #Javascript
You might like
substr()函数中文版
2006/10/09 PHP
mysql中存储过程、函数的一些问题
2007/02/14 PHP
采用PHP函数memory_get_usage获取PHP内存清耗量的方法
2011/12/06 PHP
php中global和$GLOBALS[]的分析之一
2012/02/02 PHP
怎样给PHP源代码加密?PHP二进制加密与解密的解决办法
2013/04/22 PHP
深入理解PHP变量的值类型和引用类型
2015/10/21 PHP
Yii2针对游客、用户防范规则和限制的解决方法分析
2016/10/08 PHP
Yii遍历行下每列数据的方法
2016/10/17 PHP
jquery ajax属性async(同步异步)示例
2013/11/05 Javascript
JavaScript判断访问的来源是手机还是电脑,用的哪种浏览器
2013/12/12 Javascript
JavaScript异步编程Promise模式的6个特性
2014/04/03 Javascript
javascript实现十六进制颜色值(HEX)和RGB格式相互转换
2014/06/20 Javascript
jQuery soColorPacker 网页拾色器
2016/06/22 Javascript
JS JSOP跨域请求实例详解
2016/07/04 Javascript
JS触摸屏网页版仿app弹窗型滚动列表选择器/日期选择器
2016/10/30 Javascript
AngularJS定时器的使用与移除操作方法【interval与timeout】
2016/12/14 Javascript
浅析上传头像示例及其注意事项
2016/12/14 Javascript
webpack打包单页面如何引用的js
2017/06/07 Javascript
vue项目打包后打开页面空白解决办法
2018/06/29 Javascript
微信小程序左右滚动公告栏效果代码实例
2019/09/16 Javascript
Vue快速实现通用表单验证功能
2019/12/05 Javascript
vue 路由守卫(导航守卫)及其具体使用
2020/02/25 Javascript
python通过imaplib模块读取gmail里邮件的方法
2015/05/08 Python
Python基于jieba库进行简单分词及词云功能实现方法
2018/06/16 Python
django admin组件使用方法详解
2019/07/19 Python
利用pandas将非数值数据转换成数值的方式
2019/12/18 Python
python3 通过 pybind11 使用Eigen加速代码的步骤详解
2020/12/07 Python
python 自定义异常和主动抛出异常(raise)的操作
2020/12/11 Python
探究 canvas 绘图中撤销(undo)功能的实现方式详解
2018/05/17 HTML / CSS
HTML5 文件域+FileReader 分段读取文件并上传到服务器
2017/10/23 HTML / CSS
Wiggle美国:英国骑行、跑步、游泳、铁人三项商店
2018/10/27 全球购物
什么是重载?CTS、CLS和CLR分别做何解释
2012/05/06 面试题
在weblogic中发布ejb需涉及到哪些配置文件
2012/01/17 面试题
企业文化演讲稿
2014/05/20 职场文书
常务副县长“四风”个人对照检查材料思想汇报
2014/10/02 职场文书
2014年实习生工作总结
2014/11/27 职场文书