Chrome& Safari setInterval在Active Tab上工作缓慢(1Hz和2Hz)

时间:2011-11-28 11:13:52

标签: jquery google-chrome animation safari setinterval

  

目标:创建以100Hz更新的动画。

我的动画更新了background-position属性。当前的背景位置是通过一个应该每秒发射100次以产生平稳运动幻觉的函数来计算的。

  

问题: Chrome和Safari中的动画不流畅。

好像“更新的背景位置”功能在Chrome中每秒只触发一次,在Safari中每秒只触发两次。

  

其他信息:

  • 我的代码在Firefox 4 / Internet Explorer 8及更高版本/ Opera 11.10中运行良好 (未测试以前的版本)
  • 我正在使用 setInterval function() {//在这里做东西},10)来更新我的动画
  • 我知道Chrome如何在非活动标签中处理JS - 问题出现在活动标签
  • 我正在使用jQuery 1.7

我确信必须有一种方法可以在Safari / Chrome中创建流畅的动画。请帮忙。

  

编辑:我无法使用.animate(),因为我正在跟踪鼠标移动并根据鼠标指向的位置计算当前背景位置。为此,我必须每10毫秒检查一次鼠标位置(我必须使用setInterval)。

1 个答案:

答案 0 :(得分:2)

因为你不想动画,并且你正在使用jQuery,为什么你将setInterval放在10MS?虽然jQuery有.animate函数可以处理动画吗?此功能具有Interval设置,您可以在其中放置FPS。

$(element).animate(
        {backgroundPosition:"(0 -250px)"}, 
        {duration:500})
    })

有关背景动画的更多信息:http://snook.ca/archives/javascript/jquery-bg-image-animations