打字机效果是最常见的动态效果,如果不使用程序来实现,那么工作量将会非常大,使用程序中 String 类可以非常轻松地实现这种效果。
例如下面的实现代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>Sample</title>
</head>
<body>
<!- 文字就显示在这个元素中: 200 像素宽, 100 像素高,并定义了边框样式 ->
<div
id="oDiv"
style="width:200px;height:100px;border:2px #ccc dashed;padding:10px "
></div>
<script type="text/javascript ">
var typingText = " 放一段文字在这里,让它像打字机一样一个一个的打出来,显示出来 "; var count = 0;
// 获取 div 元素的引用
var oBlock = document.getElementById("oDiv"); // 下面的这个函数每 200
毫秒调用一次 function type() { if (count <= typingText.length)
{
// 这里使用了 String.substring() 方法,目的是每次多获取一个字符
// 注意变量 count 每次都是增加的,然后将这个值赋给 div 元素作为内容 // 所以,每次都显示多一个字符
oBlock.innerHTML = typingText.substring(0, count); count++; } else {
// 如果已经 type 完,那么就清除 200 毫秒的间隔调用
window.clearInterval(intervalID);
} } // 每 200 毫秒调用一次 type() 函数
var intervalID = window.setInterval(type, 200);
</script>
</body>
</html>
该范例主要是利用了间隔调用函数和 String.substring() 方法,每次调用 type() 函数,就使用 String.substring() 方法多读取一个字符,然后更新 div 元素内的文本。实际上不是每次 " 打上去 " 一个字符,而是每次都使用新的文本去替换,这看上去像是打字机逐个打上去的。
在这个应用程序中,还应当注意怎样引用 HTML 文件中的元素,并获取和设置元素中的值。