jquery:自动滚动页面,但允许鼠标滚轮,仍然滚动

jquery:自动滚动页面,但允许鼠标滚轮,仍然滚动,jquery,target,offset,scrolltop,Jquery,Target,Offset,Scrolltop,我正在尝试创建一个功能,用户可以看到一个有5个数字的菜单,1-5。1=最慢,5=最快,当有人单击其中一个数字时,页面开始自动滚动,这样用户就不必滚动页面。我遇到的问题是,我想允许用户仍然可以访问鼠标滚轮,但是当我在页面设置动画时使用鼠标滚轮时,它将页面向下拉,然后将页面拉回到原来的位置,并继续设置动画,但不允许我向下或向上滚动,然后从我使用鼠标滚轮滚动到的新位置设置动画。现在我有了它,所以如果我在页面滚动时单击页面,它就会停止,但我没有在最后的脚本中包含它,有什么帮助吗?谢谢 $('html,b

我正在尝试创建一个功能,用户可以看到一个有5个数字的菜单,1-5。1=最慢,5=最快,当有人单击其中一个数字时,页面开始自动滚动,这样用户就不必滚动页面。我遇到的问题是,我想允许用户仍然可以访问鼠标滚轮,但是当我在页面设置动画时使用鼠标滚轮时,它将页面向下拉,然后将页面拉回到原来的位置,并继续设置动画,但不允许我向下或向上滚动,然后从我使用鼠标滚轮滚动到的新位置设置动画。现在我有了它,所以如果我在页面滚动时单击页面,它就会停止,但我没有在最后的脚本中包含它,有什么帮助吗?谢谢

$('html,body').animate({scrollTop: $(target).offset().top},430000) 

$('html,body').click(function(){
  $('html,body').stop()
})

我试图通过点击
scroll
事件来实现这一点,但遗憾的是,当动画运行时,该事件被反复调用(应该知道得更清楚)

最后,我使用了一种对滚动事件更敏感的方法,可以区分
scroll
mouseweel
,这样您就可以编写如下内容:

$(window).bind("mousewheel", function() {
    $("html, body").stop();
});

用滚轮向上或向下滚动应停止自动滚动。您可能还需要添加代码来重新启用向上/向下箭头。下面是可以添加的代码:

$(window).bind("keydown", function(event) {
    var keyCode = event.which;
    /* up, down, left, right, or page up or page down */
    if (keyCode === 33 || keyCode == 34 || (keyCode >= 37 && keyCode <= 40)) {
        $("html, body").stop();
    }
});
$(窗口).bind(“向下键”),函数(事件){
var keyCode=event.which;
/*向上、向下、向左、向右或向上或向下翻页*/

如果(keyCode==33 | | keyCode==34 | | |)(keyCode>=37&&keyCode我试图通过点击
scroll
事件来实现这一点,但遗憾的是,在动画运行时重复调用了此事件(应该知道得更清楚)

最后,我使用了一种对滚动事件更敏感的方法,可以区分
scroll
mouseweel
,这样您就可以编写如下内容:

$(window).bind("mousewheel", function() {
    $("html, body").stop();
});

使用滚轮向上或向下滚动应该会停止自动滚动。您可能需要添加代码以重新启用向上/向下箭头。以下是可以添加的代码:

$(window).bind("keydown", function(event) {
    var keyCode = event.which;
    /* up, down, left, right, or page up or page down */
    if (keyCode === 33 || keyCode == 34 || (keyCode >= 37 && keyCode <= 40)) {
        $("html, body").stop();
    }
});
$(窗口).bind(“向下键”),函数(事件){
var keyCode=event.which;
/*向上、向下、向左、向右或向上或向下翻页*/
如果(keyCode==33 | | keyCode==34 | |(keyCode>=37&&keyCode