当前位置: 首页 > news >正文

Vue-Typed-JS打字动画效果

vue-typed-js 简介

vue-typed-js 是 Vue.js 的一个插件,基于 Typed.js 实现打字机动画效果。适用于展示动态文本、标语或代码片段,支持自定义速度、循环等配置。


安装方法

通过 npm 或 yarn 安装:

npm install vue-typed-js
# 或
yarn add vue-typed-js

在项目中全局注册:

import Vue from 'vue';
import VueTypedJs from 'vue-typed-js';Vue.use(VueTypedJs);


基础用法

在组件中直接使用 vue-typed-js 组件:

<template><vue-typed-js :strings="['Hello World', 'Welcome to Vue Typed JS']"><h1 class="typing"></h1></vue-typed-js>
</template>


配置选项

通过 props 传递参数控制动画行为:

<template><vue-typed-js:strings="['Option 1', 'Option 2']":typeSpeed="50":backSpeed="30":loop="true"><span class="typing"></span></vue-typed-js>
</template>

常用参数:

  • strings:数组形式,包含要显示的文本。
  • typeSpeed:打字速度(毫秒)。
  • backSpeed:删除速度(毫秒)。
  • loop:是否循环播放。
  • showCursor:是否显示光标。

事件绑定

监听动画状态变化:

<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>


动态更新内容

通过 ref 动态修改文本:

<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 实例this.$refs.typed.options.strings = ['New Text'];this.$refs.typed.typed.reset(); // 重置动画}}
};
</script>


样式自定义

通过 CSS 修改光标或文本样式:

.typed-cursor {opacity: 1;color: #42b983;animation: blink 0.7s infinite;
}@keyframes blink {0% { opacity: 1; }50% { opacity: 0; }100% { opacity: 1; }
}

常用配置属性

属性类型默认值描述
stringsArray[]要显示的文字数组
stringsElementStringnull包含字符串的元素的ID
typeSpeedNumber40打字速度(毫秒)
backSpeedNumber20删除速度(毫秒)
startDelayNumber0开始前的延迟
backDelayNumber500删除前的延迟
loopBooleanfalse是否循环
loopCountNumberInfinity循环次数
showCursorBooleantrue是否显示光标
cursorCharString""光标字符
fadeOutBooleanfalse是否淡出
fadeOutClassString"typed-fade-out"淡出CSS类
fadeOutDelayNumber500淡出延迟
shuffleBooleanfalse是否随机播放字符串
smartBackspaceBooleantrue是否智能退格

Vue-Typed-JS 实例方法 

方法名参数返回值说明
start()--开始打字动画
stop()--停止当前动画
toggle()--切换动画状态(运行/停止)
reset()--重置动画(清除文本并回到初始状态)
destroy()--完全销毁实例
complete()--立即完成当前字符串的显示
cursor.remove()--移除光标元素
cursor.show()--显示光标(如果之前被隐藏)
cursor.hide()--隐藏光标

动态更新字符串的方法:

// 需要先重置再更新
this.$refs.myTyped.$typed.strings = ["新文本1", "新文本2"];
this.$refs.myTyped.$typed.reset().start();

 事件监听方法:

this.$refs.myTyped.$typed.on('complete', () => {console.log('动画完成');
});

 提示:所有方法调用前需通过 this.$refs.[ref名称].$typed 获取实例。修改配置属性(如 strings)后需要调用 reset() 使更改生效。 

注意事项

  1. 确保 strings 为数组类型,否则动画无效。
  2. 动态更新内容时需调用 reset() 方法重新触发动画。
  3. 如需复杂配置,参考 Typed.js 官方文档 的完整参数列表。

相关文章:

  • C#.Net 使用NPOI库导出Excel(含列宽度自适应) 及 根据Excel文件生成DataTable
  • c#实现绝对路径和相对路径的转换
  • 【网络】每天掌握一个Linux命令 - netperf
  • 【题解-洛谷】P2935 [USACO09JAN] Best Spot S
  • 2025年5月一区SCI-状态优化算法Status-based Optimization-附Matlab免费代码
  • CVE-2017-12615源码分析与漏洞复现(Tomcat 任意文件上传)
  • 工程论文: TORL: Scaling Tool-Integrated RL
  • day28/60
  • 1005. Maximize Sum Of Array After K Negations
  • 如何用python读取大的xml文件,示例为1.9G的xml文件
  • HarmonyOS - UIObserver(无感监听)
  • Windows 安装以及配置Docker全流程 - Docker Toolbox
  • vibe coding 2025工具全景图
  • python打卡day51@浙大疏锦行
  • 如何利用测试Agent自动分析覆盖率报告与缺陷趋势
  • “十五五”时期智慧城市赋能全国一体化数据市场建设:战略路径与政策建议[ 注:本建议基于公开政策文件与行业实践研究,数据引用截至2025年6月11日。]
  • 剑指offer21——反转链表
  • 力扣上C语言编程题:最大子数组和(涉及数组)
  • Qwen3-Embedding-8B:文本嵌入界的“卷王”,多语言检索新标杆!
  • 嵌入式学习笔记 - C语言访问地址的方式,以及指针的进一步理解
  • 怎么给网站做短信/网站搜索排名查询
  • 外贸做网站的好处/2345网址导航浏览器
  • vs做动态网站/幽默广告软文案例
  • 网站开发项目报价单/优化大师免费安装下载
  • 老网站改版启用二级域名/百度平台商家联系方式
  • 一个网站专门做摩托车/培训心得体会万能模板