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 Math.random()随机数函数
Nov 04 Javascript
Extjs4 关于Store的一些操作(加载/回调/添加)
Apr 18 Javascript
用jQuery向div中添加Html文本内容的简单实现
Jul 13 Javascript
AngularJS实现数据列表的增加、删除和上移下移等功能实例
Sep 05 Javascript
JS+HTML5实现的前端购物车功能插件实例【附demo源码下载】
Oct 17 Javascript
原生js实现网易轮播图效果
Apr 10 Javascript
JavaScript中关于iframe滚动条的去除和保留
Nov 17 Javascript
vue.js组件之间传递数据的方法
Jul 10 Javascript
JavaScript寄生组合式继承原理与用法分析
Jan 11 Javascript
微信小程序设置全局请求URL及封装wx.request请求操作示例
Apr 02 Javascript
js设计模式之代理模式及订阅发布模式实例详解
Aug 15 Javascript
解决vue单页面应用打包后相对路径、绝对路径相关问题
Aug 14 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
PHP IDE PHPStorm配置支持友好Laravel代码提示方法
2015/05/12 PHP
CodeIgniter配置之config.php用法实例分析
2016/01/19 PHP
orm获取关联表里的属性值
2016/04/17 PHP
javascript 跳转代码集合
2009/12/03 Javascript
js实现的常用的左侧导航效果
2013/10/17 Javascript
JavaScript中的Promise使用详解
2015/06/24 Javascript
JS实现的通用表单验证插件完整实例
2015/08/20 Javascript
jQuery实现文本框邮箱输入自动补全效果
2015/11/17 Javascript
AngularJS优雅的自定义指令
2016/07/01 Javascript
JavaScript SHA-256加密算法详细代码
2016/10/06 Javascript
jQuery实现的小图列表,大图展示效果幻灯片示例
2016/10/25 Javascript
Bootstrap基本插件学习笔记之Popover提示框(19)
2016/12/08 Javascript
ES6正则的扩展实例详解
2017/04/25 Javascript
详解vue 模拟后台数据(加载本地json文件)调试
2017/08/25 Javascript
vue使用jsonp抓取qq音乐数据的方法
2018/06/21 Javascript
React精髓!一篇全概括小结(急速)
2019/05/23 Javascript
Vue实现PC端靠边悬浮球的代码
2020/05/09 Javascript
[05:53]敌法师的金色冠名ID"BurNIng",是传说,是荣耀
2020/07/11 DOTA
零基础写python爬虫之抓取百度贴吧并存储到本地txt文件改进版
2014/11/06 Python
关于你不想知道的所有Python3 unicode特性
2014/11/28 Python
python实现向ppt文件里插入新幻灯片页面的方法
2015/04/28 Python
利用Python脚本在Nginx和uwsgi上部署MoinMoin的教程
2015/05/05 Python
安装好Pycharm后如何配置Python解释器简易教程
2019/06/28 Python
python获取全国城市pm2.5、臭氧等空气质量过程解析
2019/10/12 Python
纯css3制作的火影忍者写轮眼开眼至轮回眼及进化过程实例
2014/11/11 HTML / CSS
详解CSS3实现响应式手风琴效果
2020/06/10 HTML / CSS
Schutz鞋官方网站:Schutz Shoes
2017/12/13 全球购物
adidas澳大利亚官方网站:adidas Australia
2018/04/15 全球购物
TALLY WEiJL法国网上商店:服装、时装及配饰
2019/08/31 全球购物
PatPat德国:妈妈的每日优惠
2019/10/02 全球购物
eHarmony英国:全球领先的认真恋爱约会平台之一
2020/11/16 全球购物
英语感恩演讲稿
2014/01/14 职场文书
高中生第一学年自我鉴定
2014/09/12 职场文书
2014年公路养护工作总结
2014/12/04 职场文书
资料员岗位职责
2015/02/10 职场文书
TypeScript中条件类型精读与实践记录
2021/10/05 Javascript