为什么不禁用滚动动画?

时间:2016-10-19 19:36:04

标签: javascript jquery html css animation

为什么禁用功能不起作用?

没有stop()功能,它运行良好,但动画落后于400的动画,而stop()滚动未被禁用。

如果我快速滚动滚轮,则动画停止,当我停止滚轮时,动画开始。

这是我的网页链接http://web.100mb.ro/tutti/

$("#section-five").bind('mousewheel', function(event) {
    if (event.originalEvent.wheelDelta <= 0) {

    }
    else {
        disable_scroll();
        $('html, body').stop().animate({
            scrollTop: $("#section-four").offset().top
        }, 400,'swing',function(){
            enable_scroll();
        });
    }
});


var keys = [37, 38, 39, 40];

function preventDefault(e) {
  e = e || window.eevnt;
  if (e.preventDefault)
      e.preventDefault();
  e.returnValue = false;  
}

function keydown(e) {
    for (var i = keys.length; i--;) {
        if (e.keyCode === keys[i]) {
            preventDefault(e);
            return;
        }
    }
}

function wheel(e) {
  preventDefault(e);
}

function disable_scroll() {
  if (window.addEventListener) {
      window.addEventListener('DOMMouseScroll', wheel, false);
  }
  window.onmousewheel = document.onmousewheel = wheel;
  document.onkeydown = keydown;
}

function enable_scroll() {
    if (window.removeEventListener) {
        window.removeEventListener('DOMMouseScroll', wheel, false);
    }
    window.onmousewheel = document.onmousewheel = document.onkeydown = null;  
}

1 个答案:

答案 0 :(得分:0)

您的disable_scroll函数似乎正在添加滚动事件侦听器,而您的enable_scroll函数会删除它。