【发布时间】:2018-10-31 21:30:46
【问题描述】:
您好,我的网站需要一些有趣的文字动画。
例如掉落的字母。
如果我使用 Word 'Stackoverflow' ,
第一个字母 (S) 会掉下来,然后当第一个字母完成时
第二个字母 (t) 会掉下来,在第三个 (a) 之后...
重复直到最后一个字母掉下来。
下面的代码/jsfiddle 无法按预期工作。
这是我的代码:
var textDOM = document.querySelector('#home p');
function appendLetters(target,text,index){
if(index<text.length){
textDOM.innerHTML+='<span>'+text[index++]+'</span>';
setTimeout(function(){
textDOM.lastChild.classList.add('index-'+index);
appendLetters(target,text,index)
},1000);
}
}
(function(){
console.log(appendLetters);
appendLetters('#home p', 'a simple site made by an web developer',0);
}())
css:
#home p span{
position:relative;
top:-60px;
/*animation:fallLetters 0.2s;*/
transition: top 0.8s linear;
}
#home p span[class^='index-']{
top:0px;
}
因为 span 标签的转换延迟是 0.8 秒,所以“完全”更改它们的 css 顶部值应该需要 800 毫秒。
但是使用我的代码,除了最后一个之外的所有字母都不想顺利掉下来。不知道为什么。
您只看到最后一个顺利落下,但所有字母都应该顺利落下。如何在没有 JQUERY 的情况下修复我的代码?
我的项目中没有 JQuery 的空间。
【问题讨论】:
标签: javascript css transition