JavaScript實(shí)現(xiàn)文字打印機(jī)效果實(shí)例代碼
前言
文字打印機(jī)效果:通過逐字顯示文本,模擬打字機(jī)逐字鍵入的動(dòng)畫效果,可以廣泛應(yīng)用于對(duì)話、引導(dǎo)教程和交互式界面中。
文字打印機(jī)
文字打印機(jī)主要通過js控制實(shí)現(xiàn),其核心思想是對(duì)文本字符串進(jìn)行遍歷,每隔一段時(shí)間輸入一個(gè)文字,直到文本字符串遍歷完成;同時(shí)為了保持空格和換行,需要用到 white-space: pre-wrap; 屬性。
代碼實(shí)現(xiàn)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>文字打印機(jī)效果</title>
<style>
.hellow-text {
white-space: pre-wrap; /* 保持空格和換行 */
}
</style>
</head>
<body>
<div class="hellow-text" id="printer"></div>
<script>
document.addEventListener('DOMContentLoaded', function() {
// 要打印的文本
const text = "這是一個(gè)文字打印機(jī)效果示例。\n請(qǐng)觀察文字如何逐個(gè)顯示。";
const printerElement = document.getElementById('printer');
let index = 0;
function printText() {
if (index < text.length) {
printerElement.textContent += text.charAt(index);
index++;
setTimeout(printText, 200); // 每隔200毫秒打印一個(gè)字符
}
}
printText(); // 開始打印
});
</script>
</body>
</html>
效果預(yù)覽

帶光標(biāo)的文字打印機(jī)
上述代碼中,我們實(shí)現(xiàn)了簡(jiǎn)單的文字打印機(jī),現(xiàn)在我們來為文字添加一個(gè)光標(biāo)效果,讓它更貼合我們實(shí)際的文字打印效果:
代碼實(shí)現(xiàn)
<style>
.hellow-text {
white-space: pre-wrap; /* 保持空格和換行 */
}
/* 添加光標(biāo)樣式 */
.cursor {
display: inline-block;
width: 2px;
height: 16px;
background-color: black;
margin-left: 2px;
vertical-align: middle;
animation: blink 1s step-end infinite;
}
/* 光標(biāo)閃爍動(dòng)畫 */
@keyframes blink {
50% {opacity: 0;}
}
</style>
<body>
<div class="hellow-text" id="printer"></div>
<script>
document.addEventListener('DOMContentLoaded', function() {
// 要打印的文本
const text = "這是一個(gè)文字打印機(jī)效果示例。\n請(qǐng)觀察文字如何逐個(gè)顯示。";
const printerElement = document.getElementById('printer');
let index = 0;
// 創(chuàng)造光標(biāo)屬性span
let cursorElement = document.createElement('span');
cursorElement.classList.add('cursor');
function printText() {
if (index < text.length) {
printerElement.textContent += text.charAt(index);
// 不存在光標(biāo)屬性,則添加
if (!printerElement.contains(cursorElement)) {
printerElement.appendChild(cursorElement);
}
index++;
setTimeout(printText, 200); // 每隔200毫秒打印一個(gè)字符
}
}
printText(); // 開始打印
});
</script>
</body>
效果預(yù)覽

結(jié)語(yǔ)
通過本文的介紹,相信你已經(jīng)掌握了如何使用JS實(shí)現(xiàn)文字打印機(jī)效果,希望這些技巧能幫助你提升網(wǎng)頁(yè)設(shè)計(jì)的視覺效果。
到此這篇關(guān)于JavaScript實(shí)現(xiàn)文字打印機(jī)效果的文章就介紹到這了,更多相關(guān)JS文字打印機(jī)效果內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Bootstrap學(xué)習(xí)系列之使用 Bootstrap Typeahead 組件實(shí)現(xiàn)百度下拉效果
這篇文章主要介紹了Bootstrap學(xué)習(xí)系列之使用 Bootstrap Typeahead 組件實(shí)現(xiàn)百度下拉效果的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-07-07
10行原生JS實(shí)現(xiàn)文字無縫滾動(dòng)(超簡(jiǎn)單)
下面小編就為大家分享一篇10行原生JS實(shí)現(xiàn)文字無縫滾動(dòng)的效果,特別簡(jiǎn)單,具有很好的參考價(jià)值,希望對(duì)大家有所幫助2018-01-01
js限制checkbox選中個(gè)數(shù)以限制六個(gè)為例
需要展示多個(gè)checkbox復(fù)選框,而只能允許最多選6個(gè),下面為大家介紹下如何使用js限制checkbox選中個(gè)數(shù),需要的朋友可以參考下2014-07-07
js利用與或運(yùn)算符優(yōu)先級(jí)實(shí)現(xiàn)if else條件判斷表達(dá)式
利用與或運(yùn)算符優(yōu)先級(jí)實(shí)現(xiàn)if else運(yùn)算,讓你的代碼更精簡(jiǎn)。2010-04-04
JS實(shí)現(xiàn)把鼠標(biāo)放到鏈接上出現(xiàn)滾動(dòng)文字的方法
這篇文章主要介紹了JS實(shí)現(xiàn)把鼠標(biāo)放到鏈接上出現(xiàn)滾動(dòng)文字的方法,涉及JavaScript響應(yīng)鼠標(biāo)事件動(dòng)態(tài)操作頁(yè)面元素的相關(guān)技巧,需要的朋友可以參考下2016-04-04
利用JavaScript差集實(shí)現(xiàn)一個(gè)對(duì)比小工具
這篇文章主要給大家介紹了關(guān)于利用JavaScript差集實(shí)現(xiàn)一個(gè)對(duì)比小工具的相關(guān)資料,雖然實(shí)現(xiàn)的界面不是太好看,但好在功能實(shí)用即可,需要的朋友可以參考下2021-07-07

