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

應(yīng)用場景
用處不大,只是看到網(wǎng)上有類似的效果,寫了四五十行看不懂的代碼,于是嘗試能不能簡單的實現(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();
實現(xiàn)原理
通過定時器結(jié)合字符串截取實現(xiàn)類似于打字機的頓挫感,并通過遞歸累加index。相當(dāng)于第1s時,截取一個字節(jié),第二秒時,截取兩個字節(jié),以此類推……定時器時間取隨機數(shù),模擬打字的停頓感更好。遞歸調(diào)用中加結(jié)束循環(huán)條件,結(jié)束之前啟動動畫,模擬光標(biāo)的跳動。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
JavaScript代碼輕松實現(xiàn)網(wǎng)頁內(nèi)容禁止復(fù)制(代碼簡單)
有些時候我們寫的內(nèi)容不想被別人復(fù)制,在代碼中怎么實現(xiàn)的呢?下面小編給大家介紹javascript代碼輕松實現(xiàn)網(wǎng)頁內(nèi)容禁止復(fù)制,感興趣的童鞋一起看看吧2015-10-10
text-align:justify實現(xiàn)文本兩端對齊 兼容IE
對于text-align 我們再熟悉不過了,可是它有個justify屬性,平時很少用到,就鮮為人知了。justify是一種文本靠兩邊布局方式,一般應(yīng)用于書刊雜志排版;合理運用text-align:justify 有時會省去很多開發(fā)的時間,通過本文介紹text-align:justify實現(xiàn)文本兩端對齊 兼容IE2015-08-08
實例代碼詳解javascript實現(xiàn)窗口抖動及qq窗口抖動
這篇文章主要介紹了實例代碼詳解javascript實現(xiàn)窗口抖動及qq窗口抖動的相關(guān)資料,需要的朋友可以參考下2016-01-01
小程序rich-text組件如何改變內(nèi)部img圖片樣式的方法
這篇文章主要介紹了小程序rich-text組件如何改變內(nèi)部img圖片樣式的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-05-05
JavaScript樹形組件實現(xiàn)無限級樹形結(jié)構(gòu)
這篇文章主要介紹了JavaScript樹形組件實現(xiàn)無限級樹形結(jié)構(gòu),一種構(gòu)建多級有序樹形結(jié)構(gòu)JSON(或XML)數(shù)據(jù)源的方法,下面更多相關(guān)資料需要的小伙伴可以參考一下2022-03-03

