JavaScript實(shí)現(xiàn)文字打印機(jī)效果實(shí)例代碼
前言
文字打印機(jī)效果:通過(guò)逐字顯示文本,模擬打字機(jī)逐字鍵入的動(dòng)畫(huà)效果,可以廣泛應(yīng)用于對(duì)話(huà)、引導(dǎo)教程和交互式界面中。
文字打印機(jī)
文字打印機(jī)主要通過(guò)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)觀(guān)察文字如何逐個(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(); // 開(kāi)始打印 }); </script> </body> </html>
效果預(yù)覽
帶光標(biāo)的文字打印機(jī)
上述代碼中,我們實(shí)現(xiàn)了簡(jiǎn)單的文字打印機(jī),現(xiàn)在我們來(lái)為文字添加一個(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)畫(huà) */ @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)觀(guān)察文字如何逐個(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(); // 開(kāi)始打印 }); </script> </body>
效果預(yù)覽
結(jié)語(yǔ)
通過(guò)本文的介紹,相信你已經(jīng)掌握了如何使用JS實(shí)現(xiàn)文字打印機(jī)效果,希望這些技巧能幫助你提升網(wǎng)頁(yè)設(shè)計(jì)的視覺(jué)效果。
到此這篇關(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-0710行原生JS實(shí)現(xiàn)文字無(wú)縫滾動(dòng)(超簡(jiǎn)單)
下面小編就為大家分享一篇10行原生JS實(shí)現(xiàn)文字無(wú)縫滾動(dòng)的效果,特別簡(jiǎn)單,具有很好的參考價(jià)值,希望對(duì)大家有所幫助2018-01-01js限制checkbox選中個(gè)數(shù)以限制六個(gè)為例
需要展示多個(gè)checkbox復(fù)選框,而只能允許最多選6個(gè),下面為大家介紹下如何使用js限制checkbox選中個(gè)數(shù),需要的朋友可以參考下2014-07-07js利用與或運(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-04JS實(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