滚动停止时Javascript停止动画

标签 javascript html animation scroll

我正在尝试在用户滚动时播放动画并在他们停止时停止。
我对 javascript 知之甚少,但是通过四处寻找和适应,我已经让它开始滚动,但它一直在继续,我无法弄清楚如何让它在滚动结束后立即停止。

这是我目前所拥有的:

$(window).scroll(function() {
    $('#square').animate({
        top: '70px',
        queue: true,
    }, 900).animate({
        top: '5px',
        queue: true
    }, 1000);
});

Fiddle

非常感谢任何帮助!

最佳答案

您可以按如下方式使用计时器:

可变定时器;

$(window).scroll(function() {

    clearTimeout(timer);
    timer = setTimeout( refresh , 150 );

    $('#square').animate({
        top: '70px',
        queue: true,
    }, 900).animate({
        top: '5px',
        queue: true
    }, 1000);

});

var refresh = function () { 
// do stuff
    $('#square').stop().clearQueue();
};

FIDDLE

引用: Event when user stops scrolling

关于滚动停止时Javascript停止动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26999128/

相关文章:

javascript - 当有一组 div 时使用 fadeToggle + 淡出所有其他内容

html - 如何保持具有不同比例的图像大小相同?

html - 我怎样才能摆脱 body 和 div 之间的这个空间?

ios - swift中的图片加载效果

ios - AV Foundation 动画永远不会开始播放

ios - 如何旋转.transitionCurlDown动画?

c# - 使用 javascript 调用重定向到 ASP.NET MVC 应用程序的操作

javascript - 使用 mathJS 的 SumProduct 多维数组

javascript - 如何使用JavaScript将文件作为多部分文件上传到后端?

javascript - ng-if 不在 ng-repeat 中比较 $index