javascript - 在滚动事件上设置滚动顶部动画

标签 javascript jquery animation scroll

我有一个自定义 slider 。我想做这样的事情。当用户向下滚动时,它应该以动画方式向下滚动到下一张幻灯片,并且在此动画期间用户不应该能够滚动。但我有一个问题。滚动事件被多次触发,一个动画完成后,第二个动画开始,依此类推。

这是我的代码示例

$(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 - 在滚动事件上设置滚动顶部动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20940528/

相关文章:

jquery - 在鼠标悬停时为轮播顶部的绝对定位的 div 设置动画

css - CSS 的 Svg 旋转动画不适用于 ie 或 edge

javascript - Silverlight 没有 html/css/javascript?

javascript - 如何使用node.js获取没有ID的元素 Nightmare

javascript - 如何在 React 中等待一个 API 调用完成后再启动另一个 API 调用?

jquery - 为什么这在 Firefox 中有效,但在 Safari 中无效?

javascript - 如何每次 .animate 重复结束时执行某些操作

javascript - 能否在浏览器中使用JS从外部网页(跨域)获取某个元素的值?

javascript - 在悬停时更改 ul 下内容的字体颜色

javascript - 如何为在 jquery 中动态添加行的表添加边框样式?