核心实现,依靠charAt()函数来实现字符串的选取。封装好了,有需要简易实现的可以拿去用
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>自动打字机</title>
<style>
* {
margin: 0;
padding: 0;
}
html body {
width: 100%;
background: #000;
overflow: hidden;
}
#text{
box-sizing: border-box;
margin: 10px;
width: 98%;
height: 100px;
background: #000;
font-size: 26px;
color: #FFF;
font-weight: bold;
border: 1px solid darkkhaki;
}
.word {
margin: 100px;
width: 500px;
height: 30px;
padding: 2px 10px;
font-size: 26px;
color: #FFF;
font-weight: bold;
}
.move{
animation-name: move;
animation-duration: 5s;
animation-timing-function: linear;
animation: move 6s linear -0.1s 6 alternate ;
}
@keyframes move {
0% {
transform: translate(0,0);
}
10% {
transform: translate(0,300px);
}
20% {
transform: translate(0,150px);
}
30% {
transform: translate(0,300px);
}
40% {
transform: translate(0,230px);
}
50% {
transform: translate(0,300px);
}
60% {
transform: translate(0,270px);
}
70% {
transform: translate(0,300px);
}
80% {
transform: translate(0,290px);
}
90% {
transform: translate(0,300px);
}
100% {
transform: translate(0,299px);
}
}
</style>
</head>
<body>
<textarea name="" id="text" cols="30" rows="10"></textarea>
<div class="word"></div>
<script>
document.querySelector('#text').onchange = function changeHandle(){
printStr(document.querySelector('#text').value)
}
function printStr(str) {
var num = 0;
var showWord = '';
document.querySelector('.word').className='word'
document.querySelector('.word').className='word move'
function autoWord(wordStr) {
var wordTimeout = setTimeout(() => {
console.log("kan",wordStr,num);
document.querySelector('.word').innerHTML = showWord += wordStr.charAt(num);num++;
num < wordStr.length?autoWord(wordStr):clearTimeout(wordTimeout);
}, 200)
}
autoWord(str);
}
printStr('输入你想实现的打字机效果')
</script>
</body>
</html>