问题/疑问:
CSS 动画能够在不触发Recalculate Style或 的情况下平滑地改变元素的变换Update Layer Tree。
为什么我们不能从 JavaScript 中做同样的事情,以便我们可以平滑地更改转换以响应诸如用户移动鼠标之类的事情?
演示:https : //jsfiddle.net/7frvyoqx/5/
const testElement = document.getElementById('test')
const interval = 2000
startCssAnimation()
function startCssAnimation() {
testElement.className = 'animate'
setTimeout(() => {
startJsAnimation()
}, interval)
}
function startJsAnimation() {
testElement.className = ''
setTimeout(() => {
startCssAnimation()
jsAnimateGo = false
}, interval)
jsAnimateGo = true
frame = 0
requestAnimationFrame(jsAnimate)
}
let frame = 0
let jsAnimateGo = false
function jsAnimate() {
if (jsAnimateGo) {
testElement.style.transform = `translateX(${frame++}px)` …Run Code Online (Sandbox Code Playgroud)javascript blink google-chrome-extension google-chrome-devtools css-animations