【问题标题】:jquery setInterval creates animations buildupjquery setInterval 创建动画构建
【发布时间】:2011-08-06 18:21:08
【问题描述】:

我使用 setInterval 创建了一个画廊

fiddle

图库效果很好,唯一的问题是,如果有人离开页面探索另一个“浏览器标签”,回到图库页面,看起来像 setInterval() 结合 jQuery .animate() 创建一个奇怪的动画构建。

澄清一下:当您从另一个打开的“浏览器选项卡”返回页面时 - 动画似乎已经缓存了所有动画,现在正试图立即补偿所有动画。

任何建议将不胜感激。
谢谢

【问题讨论】:

    标签: jquery jquery-animate setinterval


    【解决方案1】:

    你不应该在这里做setInterval()。你永远不能假设你的动画会在下一个时间间隔内及时完成。始终在回调中使用 setTimeout:

       function start(){
            interv = setTimeout(function() {         
                counter++;                  
                if (counter === (iN+1)) {
                    counter = 1;
                }          
                $('#slideshow').animate({scrollLeft: 922*(counter-1)}, 1000, function(){ 
                         start(); // Apply recursive callback
                });
            }, 2000);         
        }
    

    稍后,使用clearTimeout() 代替clearInterval()

    【讨论】:

    • 兄弟,随时!我总是很乐意提供帮助:)
    • 哈哈,我正在努力在那之前达到我的每日上限!
    • 谢谢!还发现动画生成的根本原因是 jquery 中的错误。阅读 1.6.3 发行说明。
    • !!!耶!我知道(不记得#number)似乎完全修复了 1.7.+ 中的错误(看起来......)那是 G.R.E.A.T.™ 终于可以无忧无虑地构建滑块和推子和巨大的动画! ;)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-24
    • 1970-01-01
    • 2013-04-04
    • 2013-06-29
    • 1970-01-01
    相关资源
    最近更新 更多