我正在进入css3动画,我偶然发现了animation-fill-mode属性,它基本上可以在动画结束后将动画的值应用于元素。
默认情况下,当动画结束时,元素会恢复到其原始状态。
所以例如
#box{
width: 100px;
position: absolute;
}
#box.startAnimation{
animation-name:first, second;
animation-duration:5s, 5s;
animation-timing-function:linear;
animation-delay:0s, 5s;
animation-iteration-count:1;
animation-fill-mode:forwards;
}
@-moz-keyframes first
{
0% {left:40%; top:0px;background:cyan}
100% {left:100px; top:0px;}
}
@-moz-keyframes second
{
0% {left:100px; top:0px;}
100% {left:0px; top:300px;width:300px}
}
forwards 动画填充模式将使应用了 startAnimation 类的元素宽度为 300 像素,顶部为 300 像素,左侧为 0 像素。
但是,这些值应用于元素的计算样式而不是 css 样式。
这可能会导致不一致,因为如果有人现在尝试获取元素的宽度,他将返回 100 像素而不是 300 像素。
在大型项目中,上述内容可能会变得很奇怪,其中制作了动画并且存在需要访问宽度、高度、左侧等属性的 javascript 逻辑。
我的意思是计算样式与您通过 div.style.width 读取的样式之间存在这种差异(例如)
我很想听听上述问题的意见或解决方案
问候