关于jQuery的scroll([[data],fn])事件,
概述是:当用户滚动指定的元素(元素包括:所有可滚动的元素和 window 对象)时,会触发该事件。
如绑定窗口对象:
$(window).scroll( function() { console.log("You are scrolling me,stop it!"); });
或者绑定某元素对象:
$("#divId").scroll(function() {
console.log("You are scrolling me,it's crazy!");
});
一般情况下,这两个就可以了,但是,昨天遇到个意外: 首先,我要实现的功能是,由于页面篇幅较长,需为页面增加锚点定位(不清楚的童鞋可以看看百度百科的那个)。我本地测试运行正常后提交了代码,过了会儿从git上更新了最新的代码下来测试,发现失效了,我用的是第一种。跟踪发现是scroll事件没有绑定到window对象上。
然后,我检查了代码,发现没问题。
网上找相关帖子,试了各种方法都绑定不到window对象上,然后,按照某帖子的指导给一个div元素设置为overflow:scroll,用第二种方式,结果还是不行。。。
折磨了好久,各种试,不行。。。
早上来公司喝着蒙牛核桃味酸奶,搞定了它!! 实现方式还是第二种,不过,其css样式设置为:
$("#divId").css("overflow-y","auto");
$("#divId").css("height","100%");
这之前,我只用第一行代码,发现不行,加上第二行发现行了。
行了之后,我去掉了第二行、把overflow-y的属性值改为scroll、把overflow-y改为overflow居然都可以了。。。 。。。
最后,换回第一种实现方式,依然不行。。。
好奇怪,原因还在摸索中,有知道的请解惑,谢谢~~~