javascript - 滚动动画触发完成处理程序两次

标签 javascript jquery

这个滚动动画两次触发完整的处理程序..

$('html,body').stop().animate({
    scrollTop : 100
}, {
    duration : 600,
    complete : function(){
        console.log('scroll complete');
    }
});

如果您在选择器中删除 htmlbody 滚动动画将失去其跨浏览器支持...

最佳答案

动画在两个元素上触发,触发两个元素的完整处理程序。

你可以使用 promise 来避免它

$('html,body').stop()
              .animate({scrollTop : 100}, 600)
              .promise()
              .done(function() {
                  console.log('scroll complete');
              });

关于javascript - 滚动动画触发完成处理程序两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27732797/

相关文章:

javascript - 鼠标移动并单击 vlc 嵌入

javascript - AngularJs - 为什么像 Angular-strap 和 UI-Bootstrap 这样的指令使用提供者来构建它们的组件

javascript - 如何在 Svelte 上移动 prop 数组?

javascript - 在网页上运行 JS 函数的问题

javascript - 解绑匿名函数

javascript - jQuery - 未捕获的语法错误 : Unexpected token )

javascript - AngularJS - 从 url 获取网站内容 (GET)

javascript - 如何在第二次单击时重置值

javascript - JQuery 备份替代方案

javascript - 应用 css 图标时 preventDefault() 不起作用?