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

Vue實現(xiàn)半自動打字機特效

 更新時間:2023年12月10日 08:24:57   作者:帥龍之龍  
本文主要介紹了Vue實現(xiàn)半自動打字機特效,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

最近遇到一個需求就是使用Web網(wǎng)頁實現(xiàn)打字機特效,網(wǎng)上搜了一下相關(guān)插件,發(fā)現(xiàn)不完全符合我們的需求,于是手寫實現(xiàn)一個半自動的打字機。

1、源碼如下

<template>
  <div class="type-writer">
    <p class="type-writer-line">{{ line_1.typewriter }}<i class="type-writer-cursor" v-if="line_1.visible" /></p>
    <p class="type-writer-line">{{ line_2.typewriter }}<i class="type-writer-cursor" v-if="line_2.visible" /></p>
    <p class="type-writer-line">{{ line_3.typewriter }}<i class="type-writer-cursor" v-if="line_3.visible" /></p>
    <p class="type-writer-line">{{ line_4.typewriter }}<i class="type-writer-cursor" v-if="line_4.visible" /></p>
  </div>
</template>
 
<script>
export default {
  data() {
    return {
      // 第一行文字
      line_1: {
        content: `git add '我的2023年度開端'`,
        typewriter: ``,
        index: 0,
        visible: false,
        timer: null
      },
 
      // 第二行文字
      line_2: {
        content: `git commit -m 'Hello,2023!'`,
        typewriter: ``,
        index: 0,
        visible: false,
        timer: null
      },
 
      // 第三行文字
      line_3: {
        content: `git pull`,
        typewriter: ``,
        index: 0,
        visible: false,
        timer: null
      },
 
      // 第四行文字
      line_4: {
        content: `git push`,
        typewriter: ``,
        index: 0,
        visible: false,
        timer: null
      },
 
      
    };
  },
  mounted() {
    this.typingLine_1(this.line_1)
  },
  methods: {
    /**
     * 打印第一行文字
     */
    typingLine_1(obj) {
      obj.visible = true
      if (obj.index <= obj.content.length) {
        obj.typewriter = obj.content.slice(0, obj.index ++)
        obj.timer = setTimeout(() => { this.typingLine_1(obj) }, 50)
      } else {
        clearTimeout(obj.timer)
        obj.visible = false
        this.typingLine_2(this.line_2);
      }
    },
 
    /**
     * 打印第二行文字
     */
    typingLine_2(obj) {
      obj.visible = true
      if (obj.index <= obj.content.length) {
        obj.typewriter = obj.content.slice(0, obj.index ++)
        obj.timer = setTimeout(() => { this.typingLine_2(obj) }, 50)
      } else {
        clearTimeout(obj.timer)
        obj.visible = false
        this.typingLine_3(this.line_3);
      }
    },
 
    /**
     * 打印第三行文字
     */
    typingLine_3(obj) {
      obj.visible = true
      if (obj.index <= obj.content.length) {
        obj.typewriter = obj.content.slice(0, obj.index ++)
        obj.timer = setTimeout(() => { this.typingLine_3(obj) }, 50)
      } else {
        clearTimeout(obj.timer)
        obj.visible = false
        this.typingLine_4(this.line_4);
      }
    },
 
    /**
     * 打印第四行文字
     */
    typingLine_4(obj) {
      obj.visible = true
      if (obj.index <= obj.content.length) {
        obj.typewriter = obj.content.slice(0, obj.index ++)
        obj.timer = setTimeout(() => { this.typingLine_4(obj) }, 50)
      } else {
        clearTimeout(obj.timer)
      }
    },
  },
};
</script>
 
<style lang="less" scoped>
.type-writer {
  width: auto;
  padding: 100px;
  background-color: #f9f2e1;
 
  p {
    height: 20px;
    line-height: 20px;
    font-size: 20px;
    margin: 7.5px 0;
    padding: 5px;
    background-color: #f5ecd7;
    position: relative;
    color: rgb(96, 109, 121);
    font-family: '楷體';
  }
 
  .type-writer-cursor {
    width: 0px;
    height: 100%;
    border-left: 2px solid transparent;
    animation: typing 3s steps(16) forwards, cursor 1s infinite;
    -webkit-animation: typing 3s steps(16) forwards, cursor 1s infinite;
  }
}
 
/* animation */
@keyframes typing {
  from {
    width: 100%;
  }
  to {
    width: 0;
  }
}
@keyframes cursor {
  50% {
    border-color: #5e7ce0;
  }
}
 
@-webkit-keyframes typing {
  from {
    width: 100%;
  }
  to {
    width: 0;
  }
}
@-webkit-keyframes cursor {
  50% {
    border-color: #5e7ce0;
  }
}
/* / animation */
</style>

2、效果如下

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

相關(guān)文章

  • Element-Ui組件 NavMenu 導(dǎo)航菜單的具體使用

    Element-Ui組件 NavMenu 導(dǎo)航菜單的具體使用

    這篇文章主要介紹了Element-Ui組件 NavMenu 導(dǎo)航菜單的具體使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • Vue導(dǎo)出Excel文件的四種實現(xiàn)方式

    Vue導(dǎo)出Excel文件的四種實現(xiàn)方式

    文章介紹了四種在Vue.js中導(dǎo)出Excel文件的方法,包括前端使用xlsx庫、exceljs,使用現(xiàn)成組件vue-json-excel,以及后端生成,每種方法都有其適用場景和優(yōu)缺點,推薦根據(jù)具體需求選擇合適的方法,需要的朋友可以參考下
    2025-12-12
  • 在使用vuex的時候出現(xiàn)commit未定義錯誤的解決

    在使用vuex的時候出現(xiàn)commit未定義錯誤的解決

    這篇文章主要介紹了在使用vuex的時候出現(xiàn)commit未定義錯誤的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • Vue表單提交點擊事件只允許點擊一次的實例

    Vue表單提交點擊事件只允許點擊一次的實例

    這篇文章主要介紹了Vue表單提交點擊事件只允許點擊一次的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • vue+elementUI用戶修改密碼的前端驗證規(guī)則

    vue+elementUI用戶修改密碼的前端驗證規(guī)則

    用戶登錄后修改密碼,密碼需要一定的驗證規(guī)則,這篇文章主要介紹了vue+elementUI用戶修改密碼的前端驗證,需要的朋友可以參考下
    2024-03-03
  • Vue進(jìn)行大屏開發(fā)的全流程及技術(shù)細(xì)節(jié)詳解

    Vue進(jìn)行大屏開發(fā)的全流程及技術(shù)細(xì)節(jié)詳解

    大屏數(shù)據(jù)可視化是指通過大尺寸顯示屏,如指揮中心,監(jiān)控中心,展覽中心等場景,將復(fù)雜的數(shù)據(jù)信息以圖形化方式展示的技術(shù)方案,下面小編就和大家詳細(xì)講講Vue大屏開發(fā)的全流程吧
    2026-01-01
  • Vue3如何自定義v-permission權(quán)限指令

    Vue3如何自定義v-permission權(quán)限指令

    這篇文章主要為大家詳細(xì)介紹了Vue3如何編寫一個?v-permission?指令來根據(jù)用戶權(quán)限動態(tài)控制元素的渲染,感興趣的小伙伴可以參考一下
    2024-12-12
  • vue中使用極驗驗證碼的方法(附demo)

    vue中使用極驗驗證碼的方法(附demo)

    這篇文章主要介紹了vue中使用極驗驗證碼的方法(附demo)本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-12-12
  • Vue?實現(xiàn)新國標(biāo)紅綠燈效果實例詳解

    Vue?實現(xiàn)新國標(biāo)紅綠燈效果實例詳解

    這篇文章主要為大家介紹了Vue?實現(xiàn)新國標(biāo)紅綠燈效果實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • vue3新擬態(tài)組件庫開發(fā)流程之table組件源碼分析

    vue3新擬態(tài)組件庫開發(fā)流程之table組件源碼分析

    這篇文章主要介紹了vue3新擬態(tài)組件庫開發(fā)流程——table組件源碼,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-04-04

最新評論

额济纳旗| 纳雍县| 星子县| 澎湖县| 奉节县| 喀喇沁旗| 德化县| 津南区| 正镶白旗| 华亭县| 秀山| 石楼县| 吴桥县| 上蔡县| 巴塘县| 炉霍县| 金昌市| 马龙县| 蓝田县| 万山特区| 大关县| 巴塘县| 东山县| 吴川市| 广东省| 淮南市| 西乌珠穆沁旗| 会东县| 永康市| 疏勒县| 广安市| 铜川市| 涟源市| 来安县| 柳林县| 罗城| 岳池县| 新乐市| 福州市| 浦北县| 交城县|