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

JavaScript和Vue分別實(shí)現(xiàn)逐字彈出(打字機(jī))效果

 更新時(shí)間:2024年01月10日 10:49:09   作者:加油樂(lè)  
這篇文章主要為大家詳細(xì)介紹了如何通過(guò)CSS、JavaScript和Vue分別實(shí)現(xiàn)逐字彈出(打字機(jī))效果,文中的示例代碼講解詳細(xì),需要的小伙伴可以參考一下

特別注意:盒子為行內(nèi)塊及行內(nèi)元素時(shí)光標(biāo)同行顯示,塊級(jí)元素時(shí)為換行顯示

一、CSS實(shí)現(xiàn)

  • 相關(guān)公式:字體大小*動(dòng)畫(huà)步數(shù)=盒子總寬
  • 動(dòng)畫(huà)forwards屬性為停止在結(jié)束位置,替換為infinite則為無(wú)限循環(huán)動(dòng)畫(huà)
  • 光標(biāo)使用偽元素實(shí)現(xiàn),通過(guò)opacity屬性+動(dòng)畫(huà)實(shí)現(xiàn)光標(biāo)閃爍效果

代碼注釋詳解

<style>
    @keyframes ballText {
        0% {
            width: 0;
        }

        100% {
            width: 360px;
        }
    }

    @keyframes symbolInput {
        0% {
            opacity: 0;
        }
        100% {
            opacity: 1;
        }
    }

    .ballText {
        width: 0;
        font-size: 30px;
        /* 強(qiáng)制文本一行顯示 */
        white-space: nowrap;
        /* 移除部分隱藏,模擬視覺(jué)彈出效果 */
        overflow: hidden;
        /* background-color: aqua; */
        /* 動(dòng)畫(huà)效果   共4秒分12步,每一步的寬度為字體的大小(寬度),停止在結(jié)束位置 */
        animation: ballText 3s steps(12) forwards;
        /* 替換為infinite則為無(wú)限循環(huán)動(dòng)畫(huà) */
        /* animation: ballText 4s steps(12) infinite; */
    }

    .ballText::after {
        content: "|";
        display: inline-block;
        width: 0;
        height: 100%;
        animation: symbolInput  1s infinite;
    }
</style>
<body>
    <div class="ballText">測(cè)試打字機(jī)效果!</div>
</body>

二、JS實(shí)現(xiàn)

常規(guī)使用及注意事項(xiàng)

  • 注意:盒子為塊級(jí)元素時(shí),光標(biāo)換行顯示;盒子為行內(nèi)塊或行內(nèi)元素時(shí),光標(biāo)與文字同行顯示
  • 多個(gè)盒子同類名時(shí),只有第一個(gè)盒子生效,后面的盒子不生效
  • 第一個(gè)參數(shù)為盒子,第二個(gè)參數(shù)為配置對(duì)象
  • 第一個(gè)參數(shù)類名、id名、標(biāo)簽名均可(盡量以id或唯一類名為參)
  • 第二個(gè)參數(shù)為配置對(duì)象,可以設(shè)置速度、光標(biāo)、循環(huán)等,其他用法可以參考typed.js官網(wǎng)自行擴(kuò)展。
  • 需要先引入再使用,<script src="https://cdn.jsdelivr.net/npm/typed.js@2.0.12"></script>

常規(guī)使用效果圖例

代碼注釋詳解

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<!-- 1.引入typed.js -->
<script src="https://cdn.jsdelivr.net/npm/typed.js@2.0.12"></script>
<body>
    <!-- 2.定義盒子 -->
    <div class="ballText"></div>
</body>
<script>
    // 3.設(shè)置typed.js相關(guān)屬性
    var typed = new Typed(".ballText", {
        strings: ["測(cè)試打字機(jī)效果!", "第二段文字效果!", "繼續(xù)測(cè)試一段文字"],//輸出的文字
        //打字的速度。單位ms
        typeSpeed: 200,
        //設(shè)置是否循環(huán),為true,開(kāi)啟循環(huán)
        loop: true,
        //打印開(kāi)始前的延遲時(shí)間
        startDelay: 0,
        //打印結(jié)束后的延遲時(shí)間
        backDelay: 2000,
        //設(shè)置打字機(jī)是否顯示光標(biāo),為true,顯示光標(biāo)
        showCursor: true,
    });
</script>
</html>

多行顯示、換行、回退

  • 在span標(biāo)簽內(nèi)加入 white-space: pre-wrap 樣式,在strings內(nèi)的語(yǔ)句中加入\n換行符可以實(shí)現(xiàn)換行
  • ^1000:打印完成^1000之前的文字后停頓,單位毫秒
  • backSpeed控制回退退格速度,不寫(xiě)此屬性即為不退格

多行顯示及換行效果圖例

多行顯示及換行代碼注釋詳解

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<script src="https://cdn.jsdelivr.net/npm/typed.js@2.0.12"></script>
<body>
    <span id="ballText" style="white-space: pre-wrap;line-height: 30px;"></span>
</body>
<script>
    // 實(shí)現(xiàn)多行打印
    var typed = new Typed("#ballText", {
        // 打印完成^1000之前的文字后停頓,單位毫秒
        strings: [
            "測(cè)試打字機(jī)效果!\n^1000測(cè)試換行效果!\n^1000測(cè)試多行效果",
            "第二段文字效果,\n^1000測(cè)試換行效果!\n^1000測(cè)試多行效果",
            "繼續(xù)測(cè)試一段文字,\n^1000測(cè)試換行效果!\n^1000測(cè)試多行效果"
        ],
        // 打字速度
        typeSpeed: 100,
        // 退格速度
        backSpeed:200
    });
</script>
</html>

三、VUE實(shí)現(xiàn)(v2/v3通用)

1、下載命令

npm install typed.js

或者

yarn add typed.js

2、頁(yè)面使用

其他屬性及使用方法與原生同理,不做過(guò)多演示

效果圖例

代碼注釋詳解

<template>
  <div class="box">
    <div ref="typewriterElement"></div>
  </div>
</template>
<script setup>
import { onMounted, onUnmounted, ref } from "vue";
import Typed from "typed.js";
const typewriterElement = ref(null);
let typed = null;
onMounted(() => {
  // 初始化typed.js實(shí)例
  typed = new Typed(typewriterElement.value, {
    strings: ["Hello, world!", "How are you?"],
    // 打字速度
    typeSpeed: 40,
    // 退格速度
    backSpeed: 20,
    // 是否循環(huán)
    loop: true,
  });
});
// 在組件卸載時(shí)銷毀 typed.js 實(shí)例
onUnmounted(() => {
  if (typed) {
    typed.destroy();
    typed = null;
  }
});
</script>

以上就是JavaScript和Vue分別實(shí)現(xiàn)逐字彈出(打字機(jī))效果的詳細(xì)內(nèi)容,更多關(guān)于JavaScript Vue打字機(jī)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • JS如何把字符串轉(zhuǎn)換成json

    JS如何把字符串轉(zhuǎn)換成json

    這篇文章主要介紹了JS如何把字符串轉(zhuǎn)換成json,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • 深度探索JavaScript中JSDoc文檔注釋的具體使用

    深度探索JavaScript中JSDoc文檔注釋的具體使用

    JSDoc 是一種 JavaScript 文檔注釋規(guī)范,它允許開(kāi)發(fā)者為 JavaScript 代碼添加注釋,下面就跟隨小編一起來(lái)學(xué)習(xí)一下它的具體使用吧
    2024-02-02
  • js控制臺(tái)輸出的方法(詳解)

    js控制臺(tái)輸出的方法(詳解)

    下面小編就為大家?guī)?lái)一篇js控制臺(tái)輸出的方法(詳解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-11-11
  • javascript勻速動(dòng)畫(huà)和緩沖動(dòng)畫(huà)詳解

    javascript勻速動(dòng)畫(huà)和緩沖動(dòng)畫(huà)詳解

    這篇文章主要為大家詳細(xì)介紹了javascript勻速動(dòng)畫(huà)和緩沖動(dòng)畫(huà),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • Bootstrap按鈕組實(shí)例詳解

    Bootstrap按鈕組實(shí)例詳解

    單個(gè)按鈕在Web頁(yè)面中的運(yùn)用有時(shí)候并不能滿足我們的業(yè)務(wù)需求,常常會(huì)看到將多個(gè)按鈕組合在一起使用,比如富文本編輯器里的一組小圖標(biāo)按鈕等。本文將詳細(xì)介紹Bootstrap按鈕組,感興趣的朋友一起看看吧
    2017-07-07
  • JS實(shí)現(xiàn)簡(jiǎn)單留言板功能

    JS實(shí)現(xiàn)簡(jiǎn)單留言板功能

    這篇文章主要為大家詳細(xì)介紹了JS實(shí)現(xiàn)簡(jiǎn)單留言板功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • JS函數(shù)的返回值如何使用

    JS函數(shù)的返回值如何使用

    函數(shù)是一塊js代碼塊,被定義一次但可以執(zhí)行和調(diào)用多次,js中的函數(shù)也是對(duì)象可以像其他對(duì)象那樣操作和執(zhí)行,js函數(shù)也被稱為函數(shù)對(duì)象,本文給大家介紹JS函數(shù)的返回值如何使用,感興趣的朋友跟隨小編一起看看吧
    2024-02-02
  • 某頁(yè)碼顯示的helper 少量調(diào)整,另附j(luò)s版

    某頁(yè)碼顯示的helper 少量調(diào)整,另附j(luò)s版

    某頁(yè)碼顯示的helper 已經(jīng)少量調(diào)整,另附j(luò)s版,需要的朋友可以參考下。
    2010-09-09
  • element中el-switch的v-model自定義值的實(shí)現(xiàn)

    element中el-switch的v-model自定義值的實(shí)現(xiàn)

    在el-switch中設(shè)置active-value和inactive-value屬性,接受Boolean, String或Number類型的值,本文就來(lái)介紹一下element中el-switch的v-model自定義值的實(shí)現(xiàn),感興趣的可以了解一下
    2023-11-11
  • JavaScript基于自定義函數(shù)判斷變量類型的實(shí)現(xiàn)方法

    JavaScript基于自定義函數(shù)判斷變量類型的實(shí)現(xiàn)方法

    這篇文章主要介紹了JavaScript基于自定義函數(shù)判斷變量類型的實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了javascript判斷變量類型的自定義函數(shù)定義與使用方法,并針對(duì)不同瀏覽器給出了相關(guān)的分析與說(shuō)明,需要的朋友可以參考下
    2016-11-11

最新評(píng)論

福州市| 安图县| 湾仔区| 新化县| 浑源县| 怀化市| 红安县| 含山县| 海兴县| 安平县| 新和县| 贞丰县| 关岭| 全州县| 汝阳县| 丹寨县| 女性| 洛阳市| 万源市| 龙州县| 米易县| 宜宾市| 揭东县| 大渡口区| 闸北区| 四会市| 吉水县| 松江区| 大化| 澄城县| 茂名市| 铁岭市| 清水县| 宜兴市| 周至县| 吉木萨尔县| 色达县| 哈密市| 永顺县| 屯门区| 新闻|