scroll.scrolldisabler有什么作用?

时间:2016-03-02 22:46:11

标签: javascript jquery

这段代码有什么作用?

 var oldScrollPos = $(window).scrollTop();
     $(window).on('scroll.scrolldisabler', function (evt) {
         $(window).scrollTop(oldScrollPos);
         evt.preventDefault();
 });

我的代码库使用上面的代码,但我不太清楚为什么它有用。

1 个答案:

答案 0 :(得分:2)

简短回答:该代码阻止用户滚动窗口,但".scrolldisabler"部分没有任何固有的含义,并且不需要使代码工作。是否防止滚动是有用的"取决于您的要求。

答案很长:

第一行将窗口的当前滚动位置存储在变量oldScrollPos中。

.on()的调用会为窗口创建一个事件处理程序"滚动"事件。处理程序所做的是将窗口的滚动位置设置回存储在oldScrollPos变量中的内容,这样就可以防止用户滚动窗口。 (它也会调用.preventDefault(),但我不认为在这种情况下会做任何事情,因为滚动事件是在滚动发生后触发的。)

".scrolldisabler"部分是&#34;事件名称空间&#34;,这是一个jQuery功能:它只是一个标识符,您可以用来取消绑定此处理程序而不影响其他滚动处理程序,它是< em> not 实际事件名称的一部分,没有特定的技术含义。这可以编码为.on("scroll.hello".on("scroll",它仍然可以以相同的方式工作。如果您稍后致电.trigger().off(),则该命名空间才会发挥作用。

有关jQuery事件命名空间的更多信息,请查看.on() documentation