制作一个页面,页面上包含一个文本框、一个“开始”按钮、一个“暂停”按钮,用户点击“开始”按钮后,网页中从左到右以打字机效果(文字单个增加),循环显示用户输入的文本。用户点击“暂停”按钮时,暂停效果;
时间: 2023-06-23 13:09:43 浏览: 116
打字机效果(jquery)
好的,我可以为您提供一个简单的实现示例。以下是 HTML 和 JavaScript 代码:
```html
<!DOCTYPE html>
<html>
<head>
<title>打字机效果</title>
<meta charset="UTF-8">
<style>
#text {
font-size: 24px;
font-family: Arial;
padding: 10px;
border: 1px solid #ccc;
min-height: 100px;
width: 500px;
margin-bottom: 20px;
}
</style>
</head>
<body>
<textarea id="input" placeholder="请输入要显示的文本"></textarea>
<button id="startBtn">开始</button>
<button id="pauseBtn">暂停</button>
<div id="text"></div>
<script>
var input = document.getElementById("input");
var startBtn = document.getElementById("startBtn");
var pauseBtn = document.getElementById("pauseBtn");
var text = document.getElementById("text");
var timer = null;
var index = 0;
function startTyping() {
if (timer) return; // 如果已经在打字机效果中了,就不再执行
var str = input.value.trim(); // 去除输入文本前后的空格
if (!str) return; // 如果输入文本为空,就不执行
timer = setInterval(function() {
if (index >= str.length) {
index = 0; // 如果文本已经全部显示完毕,就重置 index
}
text.innerHTML = str.slice(0, index + 1); // 每次增加一个字符
index++;
}, 100); // 每 100 毫秒执行一次
}
function pauseTyping() {
clearInterval(timer);
timer = null;
}
startBtn.addEventListener("click", startTyping);
pauseBtn.addEventListener("click", pauseTyping);
</script>
</body>
</html>
```
在这段代码中,我们首先定义了一个文本框、两个按钮和一个显示文本的 div 容器。然后,我们使用 JavaScript 来实现了以下功能:
1. 点击“开始”按钮后,获取输入文本框中的内容,并在 div 容器中以打字机效果显示出来;
2. 点击“暂停”按钮后,暂停打字机效果。
我们使用了 setInterval() 函数来实现打字机效果,每次增加一个字符,并且每 100 毫秒执行一次。同时,我们使用了 clearInterval() 函数来清除定时器,以达到暂停效果。
希望这个示例对您有所帮助!
阅读全文