我正在尝试在phonegap应用程序中使用硬件加速。我读过我为此必须放置一个css 3dtransform。因此,我在html元素的主类中使用了webkit-transform3d,但是在动画制作过程中我仍然看到一些滞后。

我想打开和关闭一个框,设置是从0到somevalue的高度,反之亦然。

我在这里写了一个例子:http://jsfiddle.net/VG7V5/6/

如您所见,我以这种方式定义了类容器:

#container {
    box-shadow: 0.1em 0.1em 0.2em 0em #777777;
    width: 100%;
    max-height: 15em;
    overflow-y: auto;
    transform: translate3d(0em,0em,0em);
    -webkit-transform:translate3d(0em,0em,0em);
    -webkit-perspective: 1000;
    -webkit-backface-visibility: hidden;
}


如果我在装有Android 4.4.2的Nexus 5上打开该示例,则在启用或不启用transform3d的动画过程中都会看到一些滞后现象(实际上,在jsfiddle中它以注释的转换开始)。似乎没有任何变化。

有什么不对???

谢谢

最佳答案

也许我自己找到了解决方案。

如此article中所述

如果具有以下类型,则可以实现高性能动画:位置,比例,旋转或不透明度。

本质上,动画不应更改元素的尺寸,因为它会给cpu / gpu带来过多的开销。

因此,例如在我的示例中,更改元素的高度并不是一个好主意。 :D

10-05 19:17