Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/403.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何禁用滚动直到动画完成?_Javascript_Jquery_Scroll_Jquery Animate - Fatal编程技术网

Javascript 如何禁用滚动直到动画完成?

Javascript 如何禁用滚动直到动画完成?,javascript,jquery,scroll,jquery-animate,Javascript,Jquery,Scroll,Jquery Animate,我正在使用此代码滚动到页面上的某个元素: $("html, body").animate({scrollTop: $(".myDiv").offset().top}, 300); 它可以工作,但有一个问题:当用户向下滚动而脚本向上滚动时,会出现一些抖动,因为在不同的方向上同时有两个滚动命令——对我来说听起来很合乎逻辑 我检查了一些其他网站与这样的滚动功能,没有犹豫不决。那么防止这种情况发生的诀窍是什么呢?一个想法-尝试挂钩到滚动事件并使用它来停止动画 .. 坏主意 解决方案也有同样的问题-当您

我正在使用此代码滚动到页面上的某个元素:

$("html, body").animate({scrollTop: $(".myDiv").offset().top}, 300);
它可以工作,但有一个问题:当用户向下滚动而脚本向上滚动时,会出现一些抖动,因为在不同的方向上同时有两个滚动命令——对我来说听起来很合乎逻辑


我检查了一些其他网站与这样的滚动功能,没有犹豫不决。那么防止这种情况发生的诀窍是什么呢?

一个想法-尝试挂钩到滚动事件并使用它来停止动画 .. 坏主意


解决方案也有同样的问题-

当您使用带滚动的动画时,这是一个jQuery错误,检测良好

我做了一项研究如何关闭滚动并找到这个问题:


编辑:感谢galambalazs顺便说一句。

您在哪个事件上使用这个:$(“html,body”).animate({scrollTop:$(“.myDiv”).offset().top},300);你能解释一下吗?你是用鼠标悬停还是用鼠标点击或者其他什么吗?我用鼠标点击,比如
$(“something”).click(function(){…})来吧,谢谢你给我指出加拉姆巴拉兹的答案。如果还有其他人来到这里,我已经将他的解决方案重构为一个很好的自包含对象:
$('.myDiv').click(function(){

    disable_scroll();

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