本帖最后由 MapleRecall 于 2014-01-09 07:22:50 编辑

解决方案 »

  1.   

    你把 setInterval  里的16  换小点的数值 试试
      

  2.   

    设置成16是为了使刷新率为60帧,这个配置在IE和火狐中是完全没有问题的,我试过将16改为33,也就是保证30帧的速度,但在chrome中依旧很卡……
      

  3.   

    测试了下chrome 25.0.1364.172 m效果和firefox12一样,没卡。。
      

  4.   

    设置成16是为了使刷新率为60帧,这个配置在IE和火狐中是完全没有问题的,我试过将16改为33,也就是保证30帧的速度,但在chrome中依旧很卡……
    一般来说  把时间设置在10-12 是比较正常的(兼容部分电脑80帧的话)
    不过 firefox不卡的话  chrome应该是不会卡的。。
    你可以在你同事的机器上 试试?
      

  5.   

    想60帧的话,应该用requestAnimationFrame。
      

  6.   

    親測 chrome 不卡版本:31.0.1650.63
      

  7.   

    设置成16是为了使刷新率为60帧,这个配置在IE和火狐中是完全没有问题的,我试过将16改为33,也就是保证30帧的速度,但在chrome中依旧很卡……
    一般来说  把时间设置在10-12 是比较正常的(兼容部分电脑80帧的话)
    不过 firefox不卡的话  chrome应该是不会卡的。。
    你可以在你同事的机器上 试试?感谢回答,问题已经解决了。用外文搜索到了一篇相关文章,问题是由于webkit核心对DOM层的重绘机制而导致的,由于webkit核心会在布局发生变化时重绘整个层,所以如果使用JS修改left、top等属性时都会发生重绘,从而使性能下降,的确之前我通过Chrome调试工具中的Timeline发现大部分的时间都花在了绘制上,每一帧至少需要70ms,这远高于每秒60帧所要求的每帧时间低于16ms,所以就产生了卡顿。我的解决方法是将之前通过修改left、top等的位置属性来修改位置全部替换成通过修改css3的transforma属性中的translate3d来修改位置,但使用这种方法不兼容IE8及更低版本的浏览器。