打字机效果是最常见的动态效果,使用String类可以非常轻松地实现这种效果。
代码:
<html>
<head>
</head>
<body>
<div id="myDiv" style="border:#996600 thin dotted; width:200px; height:100px;"></div>
<script type="text/javascript">
<!--
var typingText="愿你有情人终成眷属,愿你在尘世获得幸福,我只愿面朝大海春暖花开";
var count=0;
var myBlock=document.getElementById("myDiv"); //获取div元素的引用
function type(){
if(count<=typingText.length){
myBlock.innerHTML=typingText.substring(0,count); //随着count的增加,截取字符串的子串,并显示在HTML代码中的myDiv中
count++;
}
else{
window.clearInterval(intervalID); //如果已经type完,就清除200毫秒的时间间隔调用
}
}
var intervalID=window.setInterval(type,200); //这个函数每200毫秒调用一次
-->
</script>
</body>
</html>
效果:
这个效果主要是利用了间隔调用函数和substring方法,每次调用type()函数,就使用substring方法多读取一个字符,然后更新div里的文本,实际上是每次用新的文本去替换旧的文本。
由于是第一次写JS代码,所以刚开始报错,原因就是我将JS代码放在<head>
中使用innerHTML
但是我的myDiv
是在之后定义的,将代码放在定义之后就可以出现效果。