2011-11-14 80 views
1

我们一直在使用iPhone(3G + 4)上的CSS3进行测试,并且出现了一些性能问题。移动设备上的CSS3性能

我们得到了一张Webapp,显示的是个人资料图片+额外信息。



我们有一个(默认情况下,我们隐藏的90%,箱):

border: 1px solid #aaa; 
font-size: 11px; 
text-shadow: 0 1px 0 rgba(0,0,0,.75); 
box-shadow: inset 0 0 40px rgba(255,255,255,.8); 
-webkit-box-shadow: inset 0 0 40px rgba(255,255,255,.8); 
-moz-box-shadow: inset 0 0 40px rgba(255,255,255,.8); 
-moz-border-radius: 0 10px 0 0; 
-webkit-border-radius: 0 10px 0 0; 
border-radius: 0 10px 0 0; 



我们有3个图标与下方的标签:

background: rgba(0,0,0,.5); 
padding: 3px; 
font-weight: bold; 
text-shadow: 0 1px 0 #000; 
-moz-border-radius: 10px; 
-webkit-border-radius: 10px; 
border-radius: 10px; 

现在,如果我们有动画(让它移动到喜g Y position position te te)te box the the the the animation re,,,,

我们可以做些什么来使动画流畅?

PS。在iPhone 4S是运行退出不错(因为更好的CPU)

+0

你好吗动画? JavaScript的? css3动画? dom转换? –

+0

我们首先尝试使用Javascript,之后我们尝试使用CSS3动画。随着CSS3我们得到了更好的表现,但仍然不够流畅...... – StijnH

回答

2

编辑:我做了这个答案,假设你用CSS3过渡动画。如果你不是,而且你可以,你可能期望提高性能......这是值得一试的。

这里的问题似乎是webkit必须重新绘制两个非常重的箱子阴影。这看起来并不是什么大事,但如果你先去掉了插入框阴影,我想你会看到令人惊讶的性能跳跃。

我已经在我的android设备(基于Webkit的浏览器)上经历了boggy滚动,并进行了测试以确定问题所在。文字阴影在UI类型设置中有些不相关。渐变也相当不重要。一旦我点击了box-shadow,我注意到了一个几乎线性的渐进效果,因为我逐个像素地移除了模糊半径。

例如,6px半径可能需要80ms才能在大div上呈现。如果我把它降低到3px,渲染时间接近40ms。 2px,大约20ms。

所以你可能想要阻止盒子阴影,如果可能的话只使用图像,否则只是使用较小的阴影。一旦您达到webkit可以在低端设备上至少重绘20次UI的时间,那么您可能就没有问题了。

看起来很明显。由于没有选择渲染质量的选项(例如),所以除了缩小范围之外,您无法真正优化这个功能......对于移动设备,您真正可以做的就是根据您的限制阻止效果并优化您的艺术作品。

+0

Thx为答案!我在Google上找到的是,如果您要添加-webkit-transform:translate3d(0,0,0);这对你的元素来说,你会获得更好的表现。但是这对于绝对定位的元素不适用... – StijnH

+0

这应该启用GPU加速,这与动画可以获得的效率大致相同。我一直在找webkit加载非直观的性能......功能?它做了一些奇怪的事情来优化,但在某些情况下,它会比应该的慢得多。主要是重新绘制用户界面的方式让我很困惑。如果我遇到任何问题,我已经收到了这个问题。如果你有进步,我会很有兴趣听到! –

+0

奇怪的是:如果我们在iPhone 4上测试这个,那么在3G上动画不那么流畅......保持张贴! – StijnH