Vue-Typed-JS打字動畫效果實(shí)現(xiàn)全過程
vue-typed-js 簡介
vue-typed-js 是 Vue.js 的一個插件,基于 Typed.js 實(shí)現(xiàn)打字機(jī)動畫效果。適用于展示動態(tài)文本、標(biāo)語或代碼片段,支持自定義速度、循環(huán)等配置。
安裝方法
通過 npm 或 yarn 安裝:
npm install vue-typed-js # 或 yarn add vue-typed-js
在項(xiàng)目中全局注冊:
import Vue from 'vue'; import VueTypedJs from 'vue-typed-js'; Vue.use(VueTypedJs);
基礎(chǔ)用法
在組件中直接使用 vue-typed-js 組件:
<template>
<vue-typed-js :strings="['Hello World', 'Welcome to Vue Typed JS']">
<h1 class="typing"></h1>
</vue-typed-js>
</template>
配置選項(xiàng)
通過 props 傳遞參數(shù)控制動畫行為:
<template>
<vue-typed-js
:strings="['Option 1', 'Option 2']"
:typeSpeed="50"
:backSpeed="30"
:loop="true"
>
<span class="typing"></span>
</vue-typed-js>
</template>
常用參數(shù):
strings:數(shù)組形式,包含要顯示的文本。typeSpeed:打字速度(毫秒)。backSpeed:刪除速度(毫秒)。loop:是否循環(huán)播放。showCursor:是否顯示光標(biāo)。
事件綁定
監(jiān)聽動畫狀態(tài)變化:
<template>
<vue-typed-js
@onComplete="handleComplete"
@preStringTyped="handlePreTyped"
>
<p class="typing"></p>
</vue-typed-js>
</template>
<script>
export default {
methods: {
handleComplete() {
console.log('Animation completed');
},
handlePreTyped(stringIndex) {
console.log(`Typing string ${stringIndex}`);
}
}
};
</script>
動態(tài)更新內(nèi)容
通過 ref 動態(tài)修改文本:
<template>
<vue-typed-js ref="typed" :strings="initialStrings">
<div class="typing"></div>
</vue-typed-js>
<button @click="updateText">更新文本</button>
</template>
<script>
export default {
data() {
return {
initialStrings: ['Initial Text']
};
},
methods: {
updateText() {
//this.$refs.typed.$typed 實(shí)例
this.$refs.typed.options.strings = ['New Text'];
this.$refs.typed.typed.reset(); // 重置動畫
}
}
};
</script>
樣式自定義
通過 CSS 修改光標(biāo)或文本樣式:
.typed-cursor {
opacity: 1;
color: #42b983;
animation: blink 0.7s infinite;
}
@keyframes blink {
0% { opacity: 1; }
50% { opacity: 0; }
100% { opacity: 1; }
}
常用配置屬性
| 屬性 | 類型 | 默認(rèn)值 | 描述 | |
|---|---|---|---|---|
| strings | Array | [] | 要顯示的文字?jǐn)?shù)組 | |
| stringsElement | String | null | 包含字符串的元素的ID | |
| typeSpeed | Number | 40 | 打字速度(毫秒) | |
| backSpeed | Number | 20 | 刪除速度(毫秒) | |
| startDelay | Number | 0 | 開始前的延遲 | |
| backDelay | Number | 500 | 刪除前的延遲 | |
| loop | Boolean | false | 是否循環(huán) | |
| loopCount | Number | Infinity | 循環(huán)次數(shù) | |
| showCursor | Boolean | true | 是否顯示光標(biāo) | |
| cursorChar | String | " | " | 光標(biāo)字符 |
| fadeOut | Boolean | false | 是否淡出 | |
| fadeOutClass | String | "typed-fade-out" | 淡出CSS類 | |
| fadeOutDelay | Number | 500 | 淡出延遲 | |
| shuffle | Boolean | false | 是否隨機(jī)播放字符串 | |
| smartBackspace | Boolean | true | 是否智能退格 |
Vue-Typed-JS 實(shí)例方法
| 方法名 | 參數(shù) | 返回值 | 說明 |
|---|---|---|---|
start() | - | - | 開始打字動畫 |
stop() | - | - | 停止當(dāng)前動畫 |
toggle() | - | - | 切換動畫狀態(tài)(運(yùn)行/停止) |
reset() | - | - | 重置動畫(清除文本并回到初始狀態(tài)) |
destroy() | - | - | 完全銷毀實(shí)例 |
complete() | - | - | 立即完成當(dāng)前字符串的顯示 |
cursor.remove() | - | - | 移除光標(biāo)元素 |
cursor.show() | - | - | 顯示光標(biāo)(如果之前被隱藏) |
cursor.hide() | - | - | 隱藏光標(biāo) |
動態(tài)更新字符串的方法:
// 需要先重置再更新 this.$refs.myTyped.$typed.strings = ["新文本1", "新文本2"]; this.$refs.myTyped.$typed.reset().start();
事件監(jiān)聽方法:
this.$refs.myTyped.$typed.on('complete', () => {
console.log('動畫完成');
}); 提示:所有方法調(diào)用前需通過 this.$refs.[ref名稱].$typed 獲取實(shí)例。修改配置屬性(如 strings)后需要調(diào)用 reset() 使更改生效。
注意事項(xiàng)
- 確保
strings為數(shù)組類型,否則動畫無效。 - 動態(tài)更新內(nèi)容時需調(diào)用
reset()方法重新觸發(fā)動畫。 - 如需復(fù)雜配置,參考 Typed.js 官方文檔 的完整參數(shù)列表。
總結(jié)
到此這篇關(guān)于Vue-Typed-JS打字動畫效果實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Vue-Typed-JS打字動畫效果內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Vue-router 報(bào)錯NavigationDuplicated的解決方法
這篇文章主要介紹了Vue-router 報(bào)錯NavigationDuplicated的解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03
使用vis-timeline繪制甘特圖并實(shí)現(xiàn)時間軸的中文化(案例代碼)
這篇文章主要介紹了使用vis-timeline繪制甘特圖并實(shí)現(xiàn)時間軸的中文化(案例代碼),本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-02-02
vue+vuecli+webpack中使用mockjs模擬后端數(shù)據(jù)的示例
本篇文章主要介紹了vue+vuecli+webpack中使用mockjs模擬后端數(shù)據(jù)的示例,具有一定的參考價值,感興趣的小伙伴們可以參考一下。2017-10-10
基于Vue+Node.js實(shí)現(xiàn)埋點(diǎn)功能全流程
埋點(diǎn)(Track)是指在應(yīng)用程序、網(wǎng)站或平臺中添加代碼,以記錄特定用戶行為和事件的做法,通過添加埋點(diǎn)代碼,可以觀察和分析用戶行為,以調(diào)整和改進(jìn)產(chǎn)品設(shè)計(jì)和使用體驗(yàn),本文給大家介紹了基于Vue+Node.js實(shí)現(xiàn)埋點(diǎn)功能的全流程,需要的朋友可以參考下2025-04-04
Vue.js實(shí)現(xiàn)點(diǎn)擊左右按鈕圖片切換
這篇文章主要為大家詳細(xì)介紹了Vue.js實(shí)現(xiàn)點(diǎn)擊左右按鈕圖片切換,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-07-07
vue3 reactive 請求接口數(shù)據(jù)賦值后拿不到的問題及解決方案
這篇文章主要介紹了vue3 reactive 請求接口數(shù)據(jù)賦值后拿不到的問題及解決方案,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2024-04-04

