0

如果 scrollTop 位置超过 800px,我希望能够触发一个事件。我们都知道这可以通过将 if 语句包装在窗口滚动函数中来实现,就像这样......

         $(window).scroll(function () {
           if ($(this).scrollTop() > 800) {
             // do something
           }
         });

我可以在不将其绑定到窗口滚动功能的情况下执行此操作吗?

我已经尝试过了,但它不起作用:

           if ($(window).scrollTop() > 800) {
             // just do it
           }

好吧,温柔点。

4

1 回答 1

1

你真的不能,除非你从其他东西,点击处理程序或其他东西调用它。

有什么理由不想绑定到滚动事件?

编辑::

为了完整起见,这是另一种 CPU 密集度较低的方式,只需使用时间戳即可。

var dt = new Date();
$(window).scroll(function(){
    var now = new Date();
    if(now - dt < 1000) return; //1000 === 1 second
    //do stuff
    dt = now;
});
于 2013-10-02T14:09:20.633 回答