我在 CSS3 中为特定类定义了动画,当该类添加到元素时只运行一次。问题是当我向其父级添加动态内容时,动画会再运行一次。每次,动画触发器都会添加内容。要动画的列表元素会自动添加到ul
其中并动画一次(预期的行为),而不可动画的元素会添加到 JS 事件中。
HTML:
<ul>
<li class="m"><div class="animable"></div></li>
<li class="m"><div class="animable animateNow"></div></li>
</ul>
当 JS 事件发生时,动态添加一个列表元素。
<ul>
<li class="m"><div class="animable"></div></li>
<li class="m"><div class="animable animateNow"></div></li>
<li class="m"><div class="animable"></div></li> // <- Sir! I am innocent. I am newly added by JS. IDK, what is happening :/
</ul>
并且在它被附加的那一刻,动画 div 会再次触发其动画一次,依此类推。
这是一个错误吗?我该如何预防?我正在使用纯JS。
CSS:
.animable {
position:absolute;
top:0;
left:0;
right:0;
bottom:0;
width:100%;
height:100%;
background:#ecf7d2;
}
.animateNow {
opacity:0;
animation-duration: 2s;
animation-name: animTrans;
-webkit-animation-duration: 2s;
-webkit-animation-name: animTrans;
}