如何通过滚动一次来运行jquery代码

时间:2014-10-31 19:35:24

标签: javascript jquery scroll

我有一个我在下面指出的jquery代码。这些代码运行,当我开始滚动时(我的意思是滚动的高度超过100)

但是我想在100的高度之后立即跑一次,而不是不止一次跑。

$(window).scroll(function(){
 if ($(window).scrollTop() > 100 ){
  //some codes...
 }
});

我该怎么做?谢谢:))

5 个答案:

答案 0 :(得分:2)

只要符合条件,就解除滚动处理程序的绑定:

$(window).scroll(function(){
    if ($(window).scrollTop() > 100 ){
        //Kill the handler
        $(window).off("scroll");

        //some codes...
    }
});

答案 1 :(得分:0)

使用
   $(window).unbind('scroll'); 当你第一次进入时

$(window).scroll(function(){

     if ($(window).scrollTop() > 100 ){
        $(window).unbind('scroll');
    //some codes...

   }
 });

答案 2 :(得分:0)

将滚动事件绑定到$(window),然后在scrollTop() > 100时,执行您的操作,然后从$(window)取消绑定滚动事件



$(document).ready(function() {
   $(window).bind('scroll', function() {
      if ($(this).scrollTop() > 100) {
        $('body').prepend('Scroll top > 100');
        $(window).unbind('scroll');
      }
   });
});

body { min-height: 1000px }

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
&#13;
&#13;

http://codepen.io/pen/

答案 3 :(得分:0)

确定这可以在全局变量或标志的帮助下完成,以便看到效果首先将大量数据放入页面,以便您可以看到垂直滚动。

<script>
var flag = 0;
    $(document).ready(function() {
        $(window).scroll(function() {
            if (flag == 0) {
                if ($(window).scrollTop() > 100) {
                    alert('1st time');
                    flag = 1;
                }
            } else if (flag == 1) {
                alert('second time and u can comment this alert');
            }
        });
    });
</script>

答案 4 :(得分:0)

.off()函数将在第一次之后停止触发该函数。

$(document).ready(function () {
    $(window).on('scroll.myEvent', function() {
        if ($(document.body.scrollTop > 100))
        {
             $(window).off('scroll.myEvent');
       alert('fired');
        }

       });
});

Example: http://jsfiddle.net/2k3s9jx8/