有没有办法确定窗口上有多少卷轴?

时间:2013-10-07 09:35:30

标签: jquery scroll

与此相关 post

有没有办法确定在jQuery上执行操作之前所做的滚动数?目前,我想要发生的不是点击事件,滚动事件将在第n个滚动数(例如,第三个滚动事件)上触发。有没有办法做到这一点?

谢谢!

4 个答案:

答案 0 :(得分:0)

希望这就是你的意思..

var i = 0;

$( window ).scroll(function() {
  i++;
  alert(i);
  if(i == 3){
        //Your code
  }

});

答案 1 :(得分:0)

var scrolled = 0, can_count = true;
$(window).scroll(function(){
    if (!can_count) return false;
    can_count = false;
    scrolled++;
    // if (scrolled == 3) {...}
    setTimeout(function(){ can_count = true; }, 800);
});

请注意,滚动事件会在每个滚动条上触发,这意味着在由鼠标或触控板执行的“单个”滚动上,您可能会触发MULTIPLE滚动事件,我不确定您的情况是否合适。< / p>

iv'e添加了一个计时器,每800毫秒允许1个滚动事件,这应该更准确地满足您的需要。

希望有所帮助。

答案 2 :(得分:0)

    var count = 0;
var prev_scroll = 0;
var success = 1;
$(window).scroll(function() {
    if(count >= 50){
        alert("you did 50 down scrolls");
        count = 0;
        success = 0;
    }
    if(success == 1 && $(window).scrollTop() > 500)
    {
        $(window).scrollTop(500);
        count++;
    }
    if(success == 0 && $(window).scrollTop() == 0)
    {
        /*reset success*/
        success = 1;
    }
    prev_scroll = $(window).scrollTop();
});

http://jsfiddle.net/3kPaB/11/

这将阻止用户在不滚动50次的情况下低于500px滚动。 您可以将此与Gal V提供的800毫秒超时结合起来,因为很容易达到50倍。

答案 3 :(得分:0)

我在链接的帖子中分享了jsfiddle

http://jsfiddle.net/Mw9B6/8/

if(count > 50){
    conditionMet = true;
}

滚动50次或单击按钮时满足条件,如前所述,可以/应该使用800毫秒超时。

那应该回答你的问题。