0

我使用scrollTopjQuery 上的鼠标滚轮调整在我的网站上导航,问题是:它适用于真正的鼠标(不是那么糟糕):如果你滚动 2,你必须滚动一个档位才能进入网站的第二部分缺口它将转到第 3 页等。

因此,当有人使用笔记本电脑滚动时,它看起来非常有问题:它直接进入网站的最后一页。

我想知道如何在用户停止滚动之前捕捉几个滚动凹槽。就像在这个页面上一样:neverbland.com

这是我的:knmprod.com/knmprod

4

3 回答 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);
  } 
}
于 2012-09-06T22:05:07.380 回答
0

您可以使用鼠标滚轮插件和计时器来检查滚轮何时没有移动几毫秒(例如 250 毫秒),然后执行页面更改。无论鼠标的速度或类型如何,这将允许每次鼠标移动只更改一个页面 - 与 neverbland.com 一样:

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

JSFiddle 这里

我希望这有帮助!

于 2012-09-06T22:21:09.190 回答
0

这不起作用吗?

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

http://jsfiddle.net/2hwu9/

于 2012-09-06T22:31:04.080 回答