如何禁用滚动,直到动画完成?(How to disable scrolling until anim

2019-06-26 12:37发布

我使用此代码滚动到我的网页上某一个元素:

$("html, body").animate({scrollTop: $(".myDiv").offset().top}, 300);

它的工作原理,但有一个问题,它:当用户向下滚动而滚动剧本了,有一些颤动,因为有在不同的方向上同时有两个滚动命令 - 听起来逻辑性。

我查了一些其他网站,例如滚动的功能,也没有颤动。 那么什么是防止这种情况的伎俩?

Answer 1:

那是当您使用滚动,良好的检测动画jQuery的错误。

我做了一个研究如何把它关掉滚动,找到这样一个问题: 如何禁用暂时滚动?

这里的jsfiddle。 点击后你会看到; 用户倾斜滚动,直到动画完成。

$('.myDiv').click(function(){

    disable_scroll();

    $('html, body').stop().animate({ scrollTop: 0 }, 700,function() {
        enable_scroll();
    });
});

编辑:感谢BTW galambalazs。



Answer 2:

一个想法-试图钩住scroll事件,并使用http://api.jquery.com/stop/停止动画..坏主意..

同样的问题的解决方案- 让scrollTop的用户滚动停止jQuery的动画?



文章来源: How to disable scrolling until animation is complete?