Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 将窗口滚动功能简化为简单的if语句_Jquery_Scrolltop - Fatal编程技术网

Jquery 将窗口滚动功能简化为简单的if语句

Jquery 将窗口滚动功能简化为简单的if语句,jquery,scrolltop,Jquery,Scrolltop,如果scrollTop位置超过800px,我希望能够触发一个事件。我们都知道这可以通过在窗口滚动函数中包装if语句来实现,就像这样 $(window).scroll(function () { if ($(this).scrollTop() > 800) { // do something } }); 我可以在不将其绑定到窗口滚动功能的情况下执行此操作吗 我试过这个,但不起作用:

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

         $(window).scroll(function () {
           if ($(this).scrollTop() > 800) {
             // do something
           }
         });
我可以在不将其绑定到窗口滚动功能的情况下执行此操作吗

我试过这个,但不起作用:

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

好吧,温柔一点。

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

有什么原因不想绑定到滚动事件吗

编辑::

为了完整性起见,这里有另一种cpu占用较少的方法,只需使用时间戳

var dt = new Date();
$(window).scroll(function(){
    var now = new Date();
    if(now - dt < 1000) return; //1000 === 1 second
    //do stuff
    dt = now;
});
var dt=新日期();
$(窗口)。滚动(函数(){
var now=新日期();
如果(现在-dt<1000)返回;//1000==1秒
//做事
dt=现在;
});

不,您不能。需要知道窗口正在滚动。这是$(窗口)。scroll处理程序
$(窗口)。scroll()
是一个事件处理程序-这是事件发生时发生的事情。在这种情况下,您说的是“在滚动窗口时运行此代码”。如果没有这一点,if语句将只执行一次,并且在页面的整个生命周期内不会再次执行。好吧,我已经读到,它是一个内存/CPU占用器,首先,我希望某些东西只执行一次。@Archer,好的,Bam,谢谢你提醒我。我将它绑定到.one('scroll',function(){上,这就解决了我一半的问题。尽管如此,还是有另一种说法:“如果用户在某个地方的页面下方超过800px,那么就这样做。”否-您所做的只是在用户第一次滚动时运行if语句,而不管他们滚动多少次。如果他们滚动一点点,然后再滚动很多次,代码将不会第二次运行。