抓住一个卷轴

时间:2012-09-06 21:56:57

标签: javascript jquery javascript-events scroll mousewheel

我使用scrollTop和jquery上的鼠标轮调整来浏览我的网站,问题是:它可以用真正的鼠标工作(不是那么糟糕):你必须滚动一个刻度才能进入网站的第二部分如果滚动2个凹槽,则转到第3页等。 因此,当有人使用笔记本电脑滚动时,它似乎非常错误:它直接进入网站的最后一页。

我想知道在用户停止滚动之前如何捕捉几个卷轴的凹槽。正是在这个页面上:neverbland.com

这是我的:knmprod.com/knmprod

3 个答案:

答案 0 :(得分:0)

每次获得鼠标滚轮事件时设置一个计时器,每次获得另一个事件时取消第一个事件。

只有在您停止获取事件一段时间(比如.5秒)后才会触发您的操作。

var timer, longTimer = false, delta;

$('.page').bind('mousewheel', function(e, localDelta) {
  if(!longTimer) longTimer = setInterval(action, 1500);
  clearInterval(timer);
  timer = setInterval(action, 500);
  delta = localDelta;
}

function action() {
  clearInterval(timer);
  clearInterval(longTimer);
  longTimer = false;

  if(delta<0) {
    number=plusone(number);
    goToByScroll(number);
  } else {
    number= minusone(number);
    goToByScroll(number);
  } 
}

答案 1 :(得分:0)

你可以使用mousewheel plugin和一个计时器检查车轮何时没有移动几毫秒 - 比如250 - 然后执行页面更改。这将允许每个鼠标移动单页更改,无论鼠标的速度或类型如何 - 与neverbland.com相同:

$('body').mousewheel(function() {
  clearTimeout($(this).data('timer'));
  $(this).data('timer', setTimeout(function() {
     alert('Change Page');
  }, 250));
});

JSFiddle Here

我希望这有帮助!

答案 2 :(得分:0)

这不起作用吗?

​$(window).scroll(function(){alert(1)});​

http://jsfiddle.net/2hwu9/