最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于JavaScript實現(xiàn)驚艷的打字機效果

 更新時間:2024年03月20日 10:57:24   作者:哇子學(xué)代碼  
這篇文章主要為大家詳細介紹了如何使用JavaScript打造驚艷打字機效果,讓你的文字生動躍動,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

先準備一個Html的模版:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        body {
            background-color: black;
            color: white;
        }
        #switch-box {
            color: #0cc4fb;
        }
    </style>
</head>
<body>
    我要成為
    
    <span id="switch-box"></span>
    
    高手
</body>
</html>

在switch-box中實現(xiàn)打字效果,得利用js,首先定義一個字符串?dāng)?shù)組,用于在打字機中切換文字,然后定義一個函數(shù)將數(shù)組中的字放到內(nèi)容中,每次切換后索引+1,然后循環(huán)調(diào)用這個函數(shù),當(dāng)索引大于數(shù)組長度的時候,把索引重新歸0

	const stringArray = ['C++','Go','Java','Js','PHP']
    let switch_box = document.getElementById('switch-box')
    // 定義數(shù)組索引
    let index = 0
    let delay = 500
    let changeText = () => {
        switch_box.textContent = stringArray[index]
        index ++
        if(index >= stringArray.length){
            index = 0
        }
        setTimeout(changeText,delay)
    }
    changeText()

這其實已經(jīng)能實現(xiàn)切換了,只是沒有打字效果,我們再利用js,用于顯示一個個字符的顯示,利用substring切割字符,每次字符數(shù)量+1,當(dāng)切割全部的時候,就該執(zhí)行刪除了,所以應(yīng)該定義一個刪除的標志,在刪除完之后,就應(yīng)該切換到下一個字符了。

下面是完整代碼:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        body {
            background-color: black;
            color: white;
        }
        #switch-box {
            color: #0cc4fb;
        }
    </style>
</head>
<body>
    我要成為
    
    <span id="switch-box"></span>
    
    高手
    <script>
        const stringArray = ['C++','Go','Java','Js','PHP']
        let switch_box = document.getElementById('switch-box')
        // 定義數(shù)組索引
        let index = 0
        let delay = 0
        let charIndex = 0
        // 刪除標志
        let isDelete = false
        let defaultDelay = 300
        let waitDalay = 1000

        let changeText = () => {
            switch_box.textContent = stringArray[index].substring(0,charIndex);
            if(!isDelete){
                delay = defaultDelay
                charIndex ++ 
                if(charIndex > stringArray[index].length){
                    // 當(dāng)charIndex已經(jīng)大于字符的長度的時候,表示應(yīng)該執(zhí)行刪除動畫了
                    isDelete = true    
                    delay = waitDalay
                }
            }else{
                delay = defaultDelay
                charIndex --
                if(charIndex < 1){
                    isDelete = false
                    index ++
                    if(index >= stringArray.length){
                        index = 0
                    }
                }
            }
            setTimeout(changeText,delay)
        }
        
        changeText()
    </script>
</body>
</html>

最后補充下文字后的光標閃爍效果

/*打字樣式光標*/
#switch-box::after {
    content: "I";
    font-size: 18px;
    display: inline-block;
    vertical-align: top;
    font-weight: lighter;
    animation: flicker .5s infinite;
}

/*光標閃爍動畫*/
@keyframes flicker {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

效果圖

到此這篇關(guān)于基于JavaScript實現(xiàn)驚艷的打字機效果的文章就介紹到這了,更多相關(guān)JavaScript打字機內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

苏尼特左旗| 南丹县| 光山县| 江川县| 兴国县| 班玛县| 衡阳县| 南京市| 青海省| 崇义县| 天全县| 河北省| 兴业县| 金山区| 西乡县| 临夏市| 通海县| 湛江市| 浠水县| 竹山县| 祁门县| 兖州市| 仲巴县| 达州市| 万州区| 岳阳市| 金华市| 东乌珠穆沁旗| 新余市| 乐陵市| 金坛市| SHOW| 郴州市| 石家庄市| 高淳县| 罗山县| 平利县| 漳浦县| 阜康市| 双辽市| 武平县|