Javascript 横向动画和设置间隔()

Javascript 横向动画和设置间隔(),javascript,performance,animation,setinterval,Javascript,Performance,Animation,Setinterval,我需要用Javascript启动、停止和重新启动一个横向动画,通过一些搜索,我发现Jqueryanimate()需要一个插件来执行启动-停止-重新启动,但我不会使用插件来完成这项工作(不用问“为什么不?”) 所以,我问我:“为什么不使用setInterval()来做这个横向动画,并用clearInterval()停止它呢?” 这是我的代码,是正确的还是一个疯狂的浏览器工作?我需要建立一个“效率”(在浏览器工作方面)脚本,但我不是最好的。发发慈悲吧 window.newsflash.interva

我需要用Javascript启动、停止和重新启动一个横向动画,通过一些搜索,我发现Jquery
animate()
需要一个插件来执行启动-停止-重新启动,但我不会使用插件来完成这项工作(不用问“为什么不?”)

所以,我问我:“为什么不使用
setInterval()
来做这个横向动画,并用
clearInterval()停止它呢?”

这是我的代码,是正确的还是一个疯狂的浏览器工作?我需要建立一个“效率”(在浏览器工作方面)脚本,但我不是最好的。发发慈悲吧

window.newsflash.interval = setInterval(function() {
    if(liWidthTot + $('.fn_container ul').css("left") <= 0)
        $('.fn_container ul').css('left', containerWidth);
    $('.fn_container ul').css("left", "-=1px");
},10);

//handler
$("#xml").on({
    mouseenter: function(){
        clearInterval(window.newsflash.interval);
    },
    mouseleave: function(){
        window.newsflash.interval = setInterval(function() {
            if($('.fn_container ul').css("left") - liWidthTot <= 0)
                $('.fn_container ul').css('left', containerWidth);
            $('.fn_container ul').css("left", "-=1px");
        },10);
    }
});
window.newsflash.interval=setInterval(函数(){

if(liwidthttot+$('.fn_容器ul').css(“左”)
setInterval
是制作动画的一种完全合法的方法。但是使用jQuery的
animate
方法来启动、停止和重新启动动画也很容易。在我看来,两种解决方案的性能大致相同,但由您决定哪种语法更简单

就性能而言,您要做的主要事情是确保保存对jQuery对象的引用,而不是重新蚀刻它们。您会注意到,在我的示例中,我将引用保存到
ul
,如下所示:

var $ul = $('.fn_container ul');
…这样就不必一次又一次地取


还有:你可以考虑查看CSS3动画以获得更平滑的外观。你甚至可以使用一些类似的东西来支持JQuery动画语法。< /P>查看这个性能测试(比较JS原生StTealStand和jQuery动画):THX……是我想知道的。

var $ul = $('.fn_container ul');