jquery的滚动事件
今天需要做一个异步鼠标滚动加载,以前做了几个,但是全部都是纯js写出来的而且也不记得放到那个文件还是项目中去了(本人懒得整理)。
本来打算自己写再写一个,正准备动手时,突然发现,我很悲惨,那个鼠标滚动事件不记得是哪个了[老了,记性差],只好百度或者谷歌一下啊!这一查倒是查到方法了,
不过附带了发现了很多可以直接用的插件例如:jquery.endless-scroll,paulirish-infinite-scroll很多很多啊~多的自己都不好选那个了。最后本人还是懒得想了直接自己再写一个吧
强大的jquery中有个一个scroll的方法,文档中介绍和说明是这样的啊!
“在每一个匹配元素的scroll事件中绑定一个处理函数。当滚动条发生变化时触发”关键是后面一句,满足条件暂时就用它了
这个dome我就拿window对象来做[本人开发需要]
1 $(document).ready(function () { //本人习惯这样写了
2 $(window).scroll(function () {
3 //$(window).scrollTop()这个方法是当前滚动条滚动的距离
4 //$(window).height()获取当前窗体的高度
5 //$(document).height()获取当前文档的高度
6 var bot = 50; //bot是底部距离的高度
7 if ((bot + $(window).scrollTop()) >= ($(document).height() - $(window).height())) {
8 //当底部基本距离+滚动的高度〉=文档的高度-窗体的高度时;
9 //我们需要去异步加载数据了
10 $.getJSON("url", { page: "2" }, function (str) { alert(str); });
11 }
12 });
13 });
补充一下 在外包定义一个var scrollH = 0; //上次滚动的位置记录
并且那个判断应修改成(bot + $(window).scrollTop()) >= ($(document).height() - $(window).height()) && $(window).scrollTop() > scrollH
可能会更好
其实,这篇文章可能没什么好写的,唯一有一丁点价值就是说明那个$(window).height()和$(document).height()的区别。
对了,补充一句$(window).scrollTop()和$(document).scrollTop()是没什么区别的,至少我在IE8中没发现是不一样的.
新发现一个问题,我的这个滚动方法不知为什么会执行两次,求助大家啊~~