关于scroll无法绑定的问题

  关于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居然都可以了。。。 。。。

  最后,换回第一种实现方式,依然不行。。。

  好奇怪,原因还在摸索中,有知道的请解惑,谢谢~~~

原文地址:https://www.cnblogs.com/ictlight-moving-on-1/p/5740819.html