我有一个自定义滑块。我想做这样的事情。当用户向下滚动时,它应动画化向下滚动到下一张幻灯片,并且在此动画过程中,用户不应滚动。但是我有一个问题。滚动事件被触发多次,在完成一个动画之后,开始第二个动画,依此类推。

这是我的代码示例

$(window).scroll(function(e){
  if($scrolling){
    e.preventDefault();
    e.stopPropagation();
  }
})

$(window).on('mousewheel', function(event){
    $scrolling = true
    $('html, body').animate({scrollTop: 'my position here' }, {done: function(){ $scrolling = false; } }, 1000)
});


我做错了什么?提前致谢!

最佳答案

您可以仅通过mousewheel事件控制所有内容。

var $scrolling = false;
$(window).on('mousewheel', function(event){
  if (!$scrolling){
    $scrolling = true;
    $('html, body').animate({scrollTop: 'my position here' }, {done: function(){ $scrolling = false; } }, 1000);
  }
});

关于javascript - 在滚动事件上对scrollTop进行动画处理,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20940528/

10-09 14:49