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

應(yīng)用場(chǎ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)原理
通過定時(shí)器結(jié)合字符串截取實(shí)現(xiàn)類似于打字機(jī)的頓挫感,并通過遞歸累加index。相當(dāng)于第1s時(shí),截取一個(gè)字節(jié),第二秒時(shí),截取兩個(gè)字節(jié),以此類推……定時(shí)器時(shí)間取隨機(jī)數(shù),模擬打字的停頓感更好。遞歸調(diào)用中加結(jié)束循環(huán)條件,結(jié)束之前啟動(dòng)動(dòng)畫,模擬光標(biāo)的跳動(dòng)。
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
JavaScript代碼輕松實(shí)現(xiàn)網(wǎng)頁內(nèi)容禁止復(fù)制(代碼簡單)
有些時(shí)候我們寫的內(nèi)容不想被別人復(fù)制,在代碼中怎么實(shí)現(xiàn)的呢?下面小編給大家介紹javascript代碼輕松實(shí)現(xiàn)網(wǎng)頁內(nèi)容禁止復(fù)制,感興趣的童鞋一起看看吧2015-10-10
text-align:justify實(shí)現(xiàn)文本兩端對(duì)齊 兼容IE
對(duì)于text-align 我們?cè)偈煜げ贿^了,可是它有個(gè)justify屬性,平時(shí)很少用到,就鮮為人知了。justify是一種文本靠兩邊布局方式,一般應(yīng)用于書刊雜志排版;合理運(yùn)用text-align:justify 有時(shí)會(huì)省去很多開發(fā)的時(shí)間,通過本文介紹text-align:justify實(shí)現(xiàn)文本兩端對(duì)齊 兼容IE2015-08-08
實(shí)例代碼詳解javascript實(shí)現(xiàn)窗口抖動(dòng)及qq窗口抖動(dòng)
這篇文章主要介紹了實(shí)例代碼詳解javascript實(shí)現(xiàn)窗口抖動(dòng)及qq窗口抖動(dòng)的相關(guān)資料,需要的朋友可以參考下2016-01-01
IE本地存儲(chǔ)userdata的一個(gè)bug說明
再一次項(xiàng)目上用到ie的userdata,考慮當(dāng)用戶不使用flash插件用于存儲(chǔ)一些聊天記錄2010-07-07
js實(shí)現(xiàn)點(diǎn)擊圖片在屏幕中間彈出放大效果
這篇文章主要介紹了js實(shí)現(xiàn)點(diǎn)擊圖片在屏幕中間彈出放大效果,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-09-09
小程序rich-text組件如何改變內(nèi)部img圖片樣式的方法
這篇文章主要介紹了小程序rich-text組件如何改變內(nèi)部img圖片樣式的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-05-05
JS實(shí)現(xiàn)點(diǎn)擊圖片放大縮小及拖拽功能
本文使用 vue創(chuàng)建一個(gè)可拖拽和縮放的圖片查看器組件,該組件不僅可以展示圖片,還支持用戶通過鼠標(biāo)拖動(dòng)和縮放來查看細(xì)節(jié),本文將介紹如何封裝一個(gè)簡單的圖片拖拽與縮放組件,感興趣的小伙伴跟著小編一起來看看吧2025-02-02
JavaScript樹形組件實(shí)現(xiàn)無限級(jí)樹形結(jié)構(gòu)
這篇文章主要介紹了JavaScript樹形組件實(shí)現(xiàn)無限級(jí)樹形結(jié)構(gòu),一種構(gòu)建多級(jí)有序樹形結(jié)構(gòu)JSON(或XML)數(shù)據(jù)源的方法,下面更多相關(guān)資料需要的小伙伴可以參考一下2022-03-03

