我需要使用 Web Animations API 来“模拟”附加动画。
如文档中所述,尚不支持附加动画,getComputedStyle(element)
建议使用。
我面临的问题是返回的matrix3dgetComputedStyle(element).transform
可能不包含足够的透视信息,所以如果我使用作为开始关键帧,动画就不一样(红框问题)。
在这个例子中,蓝框有想要的动画,红框动画不正确:
我想知道: - 如果存在解决此问题的方法 - 附加动画的实现是否transform
支持perspective
.
谢谢你的时间。
var elem = document.getElementById('target');
var style = window.getComputedStyle(elem);
elem.animate([{
transform: style.transform // using matrix3d returned from getComputedStyle()
}, {
transform: 'rotateY(179deg) scaleZ(2) translateZ(200px)'
}], {
duration: 3000
});
var elem2 = document.getElementById('target2');
elem2.animate([{
transform: 'rotateY(-179deg) scaleZ(2) translateZ(200px)'
}, {
transform: 'rotateY(179deg) scaleZ(2) translateZ(200px)'
}], {
duration: 3000
});
#wrapper,
#wrapper2 {
perspective: 1000px;
}
#target,
#target2 {
position: absolute;
top: 100px;
width: 200px;
height: 300px;
}
#target {
left: 100px;
background-color: red;
transform: rotateY(-179deg) scaleZ(2) translateZ(200px);
}
#target2 {
left: 400px;
background-color: blue;
transform: rotateY(-179deg) scaleZ(2) translateZ(200px);
}
<div id="wrapper">
<div id="target">wrong animation</div>
</div>
<div id="wrapper2">
<div id="target2">correct animation</div>
</div>