用javaScript结合jQuey实现打字机打字的效果。
- 现在HTML里写入需要显示的文字,按标签分好类。
- 用CSS给不同的字体属性类设置不同的显示效果。
- 在javaScript里结合jQuey实现一个一个字符动态显示的效果。
效果图:
代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>打字机效果</title>
<style>
/*关键字*/
.keyword {
color: #7f0055;
font-weight: bold;
}
/*行缩进*/
.placeholder {
margin-left: 15px;
}
/*空格*/
.apace {
margin-left: 7px;
}
/*注释*/
.comments {
color: #3f7f5f;
}
</style>
<script src="./jquery.js"></script>
</head>
<body>
<div class="typewriter">
<span class="comments">/**</span><br />
<span class="space"><span class="comments">* 这是注释</span><br/>
<span class="space"><span class="comments">* /</span><br/>
<span class="keyword">var</span> str = "hello world".<span class="keyword">substr</span>(6)<br />
<span class="keyword">console.log</span>(str);<br />
<span class="comments">// world</span><br/>
<span class="keyword">if</span>(1===1) {<br />
<span class="placeholder" >str = "你好 世界"<br />
}<br/>
</div>
</body>
</html>
<script>
var element=$(".typewriter"); //类数组
//console.log(element)
var str=element.html();
//console.log(str)
element.html("") //将element元素下的内容替换为""
var progress=0;
var ticket=setInterval(function(){
var current=str.substr(progress,1);
if(current=="<"){
progress=str.indexOf(">",progress)+1;
}else{
progress=progress+1;
}
element.html(str.substring(0,progress) + (progress % 5 ? "_" :""));
if(progress>=str.length-1){
//element. html(str.substring(0 , progress));
clearInterval(ticket);
}
},70);
</script>