純js實(shí)現(xiàn)打字機(jī)效果
本文實(shí)例為大家分享了js實(shí)現(xiàn)打字機(jī)效果的具體代碼,供大家參考,具體內(nèi)容如下
效果圖

應(yīng)用場景
用處不大,只是看到網(wǎng)上有類似的效果,寫了四五十行看不懂的代碼,于是嘗試能不能簡單的實(shí)現(xiàn)
html
<h2 id="text-box"></h2>
<!--一行也是代碼-->
css
h2 {
width: 800px;
line-height: 40px;
border-bottom: 1px solid;
margin: 200px auto;
font-size: 24px;
}
.animate {
display: inline-block;
padding: 0 5px;
vertical-align: 3px;
font-size: 20px;
font-weight: normal;
}
.animate.on {
animation: fade 1.5s infinite forwards;
}
@keyframes fade {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
js
let textBox = $('#text-box');
let index = 0;
let str = 'Welcome to my website!';
let len = str.length;
function input() {
textBox.html(str.substr(0, index) + '<span class="animate">|</span>');
setTimeout(function() {
index++;
if(index === len + 1) {
$('.animate').addClass('on');
return;
}
input();
}, Math.random() * 600)
console.log(index);
}
input();
實(shí)現(xiàn)原理
通過定時器結(jié)合字符串截取實(shí)現(xiàn)類似于打字機(jī)的頓挫感,并通過遞歸累加index。相當(dāng)于第1s時,截取一個字節(jié),第二秒時,截取兩個字節(jié),以此類推……定時器時間取隨機(jī)數(shù),模擬打字的停頓感更好。遞歸調(diào)用中加結(jié)束循環(huán)條件,結(jié)束之前啟動動畫,模擬光標(biāo)的跳動。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
JavaScript代碼輕松實(shí)現(xiàn)網(wǎng)頁內(nèi)容禁止復(fù)制(代碼簡單)
有些時候我們寫的內(nèi)容不想被別人復(fù)制,在代碼中怎么實(shí)現(xiàn)的呢?下面小編給大家介紹javascript代碼輕松實(shí)現(xiàn)網(wǎng)頁內(nèi)容禁止復(fù)制,感興趣的童鞋一起看看吧2015-10-10
text-align:justify實(shí)現(xiàn)文本兩端對齊 兼容IE
對于text-align 我們再熟悉不過了,可是它有個justify屬性,平時很少用到,就鮮為人知了。justify是一種文本靠兩邊布局方式,一般應(yīng)用于書刊雜志排版;合理運(yùn)用text-align:justify 有時會省去很多開發(fā)的時間,通過本文介紹text-align:justify實(shí)現(xiàn)文本兩端對齊 兼容IE2015-08-08
實(shí)例代碼詳解javascript實(shí)現(xiàn)窗口抖動及qq窗口抖動
這篇文章主要介紹了實(shí)例代碼詳解javascript實(shí)現(xiàn)窗口抖動及qq窗口抖動的相關(guān)資料,需要的朋友可以參考下2016-01-01
js實(shí)現(xiàn)點(diǎn)擊圖片在屏幕中間彈出放大效果
這篇文章主要介紹了js實(shí)現(xiàn)點(diǎn)擊圖片在屏幕中間彈出放大效果,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2019-09-09
小程序rich-text組件如何改變內(nèi)部img圖片樣式的方法
這篇文章主要介紹了小程序rich-text組件如何改變內(nèi)部img圖片樣式的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-05-05
JS實(shí)現(xiàn)點(diǎn)擊圖片放大縮小及拖拽功能
本文使用 vue創(chuàng)建一個可拖拽和縮放的圖片查看器組件,該組件不僅可以展示圖片,還支持用戶通過鼠標(biāo)拖動和縮放來查看細(xì)節(jié),本文將介紹如何封裝一個簡單的圖片拖拽與縮放組件,感興趣的小伙伴跟著小編一起來看看吧2025-02-02
JavaScript樹形組件實(shí)現(xiàn)無限級樹形結(jié)構(gòu)
這篇文章主要介紹了JavaScript樹形組件實(shí)現(xiàn)無限級樹形結(jié)構(gòu),一種構(gòu)建多級有序樹形結(jié)構(gòu)JSON(或XML)數(shù)據(jù)源的方法,下面更多相關(guān)資料需要的小伙伴可以參考一下2022-03-03

