[英]Vanilla JavaScript: delete spans after animation ends
I use anime.js to animate headings.我使用anime.js 为标题设置动画。 It adds spans to all letters to animate them individually.它为所有字母添加跨度以单独为它们设置动画。 After the animation I like to delete this spans from the text, but deletion doesn't working.动画结束后,我喜欢从文本中删除此跨度,但删除不起作用。 This is the code:这是代码:
function theAnimation() {
var textWrapper = document.querySelector('.pt-animation');
textWrapper.innerHTML = textWrapper.textContent.replace(/\S/g, "<span class='letter'>$&</span>");
anime.timeline({
loop: false,
delay: 500
})
.add({
targets: '.pt-animation .letter',
translateX: [40,0],
translateZ: 0,
opacity: [0,1],
easing: "easeOutExpo",
duration: 1200,
delay: (el, i) => 500 + 30 * i
})
}
function deleteSpan(){
var letter = document.getElementsByClassName("letter");
delete letter;
}
theAnimation();
deleteSpan();
Try remove method:尝试删除方法:
var letter = document.getElementsByClassName("letter")[0];
letter.remove();
complete()
callback is triggered once when the animation is completed.complete()
回调在动画完成时触发一次。
To delete element from DOM
, Use elem.parentNode.removeChild(elem);
要从DOM
删除元素,请使用elem.parentNode.removeChild(elem);
function theAnimation() { var textWrapper = document.querySelector('.pt-animation'); textWrapper.innerHTML = textWrapper.textContent.replace(/\\S/g, "<span class='letter'>$&</span>"); anime.timeline({ loop: false, delay: 500 }) .add({ targets: '.pt-animation .letter', translateX: [40, 0], translateZ: 0, opacity: [0, 1], easing: "easeOutExpo", duration: 1200, delay: (el, i) => 500 + 30 * i, complete: deleteSpan }); } function deleteSpan() { var letter = document.getElementsByClassName("letter"); for (var i = 0, len = letter.length; i < len; i++) { letter[i].parentNode.removeChild(letter[i]); } } theAnimation();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.