ChatGPT 的逐字显示效果很酷炫,那么我们可以尝试实现类似的效果。
定义一个基本 HTML 结构
<div class="chat-container">
<div id="message"></div>
</div>
编写 JS 代码
const messageElement = document.getElementById("message");
const text =
"这是一个模拟 ChatGPT 的文字输出效果的示例。文字会逐字显示,就像是实时生成的。";
let index = 0;
function typeText() {
if (index < text.length) {
messageElement.textContent += text[index];
index++;
setTimeout(typeText, 50); // 50ms 显示一个字符
}
}
typeText();
这段 HTML 代码定义了一个名为 typeText
的函数,函数通过逐个显示字符串 text
中的字符,营造出文字实时生成的效果。
具体实现方式是通过 setTimeout
函数每隔 50 毫秒显示一个字符,直到整个字符串显示完毕。函数内部使用 index
变量来记录当前要显示的字符位置,并通过 messageElement.textContent
将字符添加到页面上的 message
元素中。
最后,通过调用 typeText 函数启动文字输出的模拟效果。
完整代码:
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>ChatGPT 文字效果</title>
</head>
<body>
<div class="chat-container">
<div id="message"></div>
</div>
<script>
const messageElement = document.getElementById("message");
const text =
"这是一个模拟 ChatGPT 的文字输出效果的示例。文字会逐字显示,就像是实时生成的。";
let index = 0;
function typeText() {
if (index < text.length) {
messageElement.textContent += text[index];
index++;
setTimeout(typeText, 50); // 50ms 显示一个字符
}
}
typeText();
</script>
</body>
</html>