![](/img/trans.png)
[英]Why does my wrapper move outside its position when i add an animation to it?
[英]Why does my css animation keep restarting when I add new elements with animation?
因此,当我单击一个按钮时,我会将一些html附加到动画中的dom上,当我再次按下该按钮时,会将更多html附加到dom上并进行动画处理。我的问题是,我附加的每个元素在我按下按钮。 我希望它只动画一次,是否可以在不使用JavaScript的情况下添加和删除类?
.additional-text{
animation:fadein 4s;
}
@keyframes fadein {
from {
opacity: 0;
}
to {
opacity: 1
}
}
附加的Div具有附加文本类。
原因是因为您正在使用innerHTML
更新DOM,这意味着您将DOM的整个部分转换为字符串,向其中添加另一个DOM字符串,然后转换回并渲染,从而重新呈现了整个部分。
您应该创建并附加节点。
function addMoreText(){
var text = document.createElement('div')
text.classList.add('additional-text');
text.innerHTML = '<p>Even More of my text</p>';
var textEle = document.getElementsByClassName('text')[0];
textEle.appendChild(text)
}
您可以尝试另一种解决方法:
var button = document.querySelector("button");
let count = 0;
button.addEventListener("click", addMoreText);
function addMoreText(){
count += 1
var text = "<div class=`${count > 1 ? null : 'additional-text'}`><p>More of my text</p><p>Even More of my text</p></div>"
var textEle = document.getElementsByClassName('text')[0];
textEle.innerHTML += text;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.