采用非常基本的CSS3动画规则,如下所示:
.dimension.fadeIn {
-webkit-animation: fadeIn 0.7s;
-webkit-animation-timing-function:ease-in-out;
height:24px;
}
@-webkit-keyframes fadeIn {
0% {
height:0;
opacity: 0;
}
30% {
height:24px; /* the default row (tr) height */
opacity: 0;
}
90% {
opacity: 1;
}
}
在除了MacBook Retina显示屏之外的所有显示屏上,Chrome浏览器中的动画都非常流畅。但是当我们在MBP Retina上尝试时,动画明显变慢,感觉通常也比较卡顿。
当我使用Transit时,也遇到了同样的情况(如果你有Retina和外部显示器,请尝试运行Transit的演示(或任何CSS3动画?),并在两个屏幕之间进行比较,你应该会感觉不像你想要的那么平滑)。
我们尝试通过设置
-webkit-transform:translateZ(0)
以及一些其他东西,如-webkit-backface-visibility:hidden
来利用GPU,但没有效果。因此,显然Retina显示屏具有更高的像素密度,但可以采取哪些方法解决这个问题?
-webkit-perspective
,就可以轻松地通过translate: rotateY(-90deg)
实现相同的效果。当您有大约1000个元素并且动画高度时,问题不仅仅出现在Retina屏幕上。 - drinchev