我正在使用css3动画的网站上工作,它在Safari和Firefox中工作得很好,但由于某种原因,在Chrome中的性能很糟糕。(约15 fps)
http://triple-tested.com/animations/
动画很简单,基本上是几个大圆圈分层。我还用javascript添加了一些png精灵动画。
我知道硬件加速,但我不认为这是问题所在,这似乎是Chrome独有的一些怪癖。css动画可以单独执行“OK”,但是一旦我添加了sprites,性能就会大大下降。
$.fn.spriteme = function(options) {
var settings = $.extend({ framerate: 30 }, options);
return this.each(function(){
var $el = $(this),
curframe = 0,
width = settings.width,
fr = 1000/settings.framerate;
(function animloop(){
if(curframe == settings.frames) { curframe = 0; }
$el.css('background-position', (curframe*width)*-1 + 'px center');
curframe++;
setTimeout( animloop, fr );
})();
});
};
这是我写的动画精灵的代码,但正如我所说,它在Safari和Firefox中表现完美,所以我不认为这是问题。Chrome似乎在使用css和sprites进行动画方面有问题。
我已经尝试了我能在网上找到的一切,但如果有人有任何建议,请让我知道。
我在Mac上使用最新的稳定Chrome(17.0.963.93)
你可以在这里看到css(使用较少)btw http://triple-tested.com/animations/css/style.less
2条答案
按热度按时间r55awzrz1#
感谢回复的家伙,我认为这是一个问题,某些版本的 chrome ,因为它的工作完美的最新金丝雀建设。
我最终剥离了一些chrome的动画,优雅福尔斯静态图像。
zi8p0yeb2#
Chrome以同时转换问题而闻名。可能有帮助的一件事是启用硬件加速,例如:
will-change: transform;
使chrome使用GPU进行渲染过渡。