3

此消息是对Developer Tools -> Timeline -> Frames中“重新计算样式”记录的解释。对于这个字符串,我能找到的唯一搜索结果是对其在 Webkit 本地化源中的位置的引用。

我有一套非常流畅的 60fps 动画正在运行,除了偶尔会消耗 100 多毫秒的“样式无效”打嗝。如 DevTools 时间线图的悬停状态所示,所述打嗝出现在两个位置之一:

1) 一个 greensock 时间轴,它的播放头来回移动以控制在translateX屏幕上播放的元素的动画。

2) 直接在一小部分旋转元素上设置变换的代码块:

while(i--) {
    gears[i].style['WebkitTransform'] = 'rotate3d(0,0,1,' + (delta * rotations[i]) + 'deg)';
}

devtools 时间线的屏幕截图

这两个都是从requestAnimationFrame循环中调用的,并且在代码中的任何地方修改的唯一属性是转换rotate/rotate3dtranslate// translateXtranslate3d我已经尝试过使用和不使用3d)。

我也尝试禁用 and 中的一个或另一个translateXrotate但它们每个似乎仍然单独导致问题。

4

0 回答 0