此消息是对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)';
}
这两个都是从requestAnimationFrame
循环中调用的,并且在代码中的任何地方修改的唯一属性是转换rotate
/rotate3d
和translate
// translateX
(translate3d
我已经尝试过使用和不使用3d)。
我也尝试禁用 and 中的一个或另一个translateX
,rotate
但它们每个似乎仍然单独导致问题。