jquery浏览器滚动加载技术实现方案


Posted in Javascript onJune 03, 2014

要知道,数据量增加很频繁时,要通过定位页码来找到目标数据似乎并没有什么意义。我觉得用户体验成熟的WEB应用程序应当引导用户使用TAG或搜索等功能来找到目标数据。至于浏览数据,尤其是浏览最新的数据,利用浏览器滚动条来加载,是很好的尝试……

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

<script type=”text/javascript” src=”jquery.js“>//加载jquery库</script>
<script type=”text/javascript”> gh
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;//原因同上。
});
}
</script>
<div id=”mypage”></div>

为什么要隔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://localhost/test.php?name=boho&id=1这种形式的http访问。然后通过get方法的回调函数来获取test.php输出的内容:

$.get(”test.php”, {name:”boho”,id:”1″},function(data){
alert(”Data Loaded: ” + data);
});
Javascript 相关文章推荐
JavaScript 指导方针
Apr 05 Javascript
JavaScript获取页面中第一个锚定文本的方法
Apr 03 Javascript
js读取并解析JSON类型数据的方法
Nov 14 Javascript
js实现仿微博滚动显示信息的效果
Dec 21 Javascript
JavaScript实现的MD5算法完整实例
Feb 02 Javascript
javascript实现的猜数小游戏完整实例代码
May 10 Javascript
jQuery前端开发35个小技巧
May 24 Javascript
JavaScript获取当前url根目录(路径)
Jun 17 Javascript
Angualrjs和bootstrap相结合实现数据表格table
Mar 30 Javascript
JavaScript中三个等号和两个等号你了解多少
Jul 04 Javascript
JS常见DOM节点操作示例【创建 ,插入,删除,复制,查找】
May 14 Javascript
基于layui框架响应式布局的一些使用详解
Sep 16 Javascript
js控制当再次点击按钮时的间隔时间
Jun 03 #Javascript
node.js中使用node-schedule实现定时任务实例
Jun 03 #Javascript
node.js WEB开发中图片验证码的实现方法
Jun 03 #Javascript
node.js实现多图片上传实例
Jun 03 #Javascript
node.js正则表达式获取网页中所有链接的代码实例
Jun 03 #Javascript
jquery处理json数据实例分析
Jun 03 #Javascript
js 获取浏览器版本以此来调整CSS的样式
Jun 03 #Javascript
You might like
《Pokemon Sword·Shield》系列WEB动画《薄明之翼》第2话声优阵容公开!
2020/03/06 日漫
PHP中基本符号及使用方法
2010/03/23 PHP
php制作unicode解码工具(unicode编码转换器)代码分享
2013/12/24 PHP
Laravel 5框架学习之日期,Mutator 和 Scope
2015/04/08 PHP
PHP封装的HttpClient类用法实例
2015/06/17 PHP
Extjs4.0设置Ext.data.Store传参的请求方式(默认为GET)
2013/04/02 Javascript
JavaScript闭包实例讲解
2014/04/22 Javascript
Javascript让DEDECMS告别手写Tag
2014/09/01 Javascript
基于javascript、ajax、memcache和PHP实现的简易在线聊天室
2015/02/03 Javascript
javascript 应用小技巧方法汇总
2015/07/05 Javascript
JavaScript函数柯里化详解
2016/04/29 Javascript
Vue.js实现简单ToDoList 前期准备(一)
2016/12/01 Javascript
canvas 画布在主流浏览器中的尺寸限制详细介绍
2016/12/15 Javascript
利用C/C++编写node.js原生模块的方法教程
2017/07/07 Javascript
JS和Canvas实现图片的预览压缩和上传功能
2018/03/30 Javascript
详解Angular模板引用变量及其作用域
2018/11/23 Javascript
Python实现批量下载文件
2015/05/17 Python
Python基于Tkinter实现的记事本实例
2015/06/17 Python
Python下载指定页面上图片的方法
2016/05/12 Python
关于python写入文件自动换行的问题
2018/06/23 Python
Sanic框架请求与响应实例分析
2018/07/16 Python
对YOLOv3模型调用时候的python接口详解
2019/08/26 Python
Ranorex通过Python将报告发送到邮箱的方法
2020/01/12 Python
python中可以声明变量类型吗
2020/06/18 Python
Pytorch 解决自定义子Module .cuda() tensor失败的问题
2020/06/23 Python
Django model class Meta原理解析
2020/11/14 Python
CSS3实现时间轴特效
2020/11/02 HTML / CSS
前端H5 Video常见使用场景简介
2020/08/21 HTML / CSS
英国最受欢迎的手表网站:Watch Shop
2016/10/21 全球购物
露营世界:Camping World
2017/02/02 全球购物
美国知名艺术画网站:Art.com
2017/02/09 全球购物
药品质量检测应届生求职信
2013/11/14 职场文书
临床医学专业学生的自我评价分享
2013/11/21 职场文书
2014年社区国庆节活动方案
2014/09/16 职场文书
无子女夫妻离婚协议书(4篇)
2014/10/20 职场文书
团队拓展训练心得体会
2016/01/12 职场文书