Vue-Typed-JS打字动画效果实现全过程

 更新时间:2025年08月22日 10:39:59   作者:孩子 你要相信光  
Vue-typed-js是一个用于Vue.js的Typed.js集成插件,它可以创建打字动画效果,这篇文章主要介绍了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 官方文档 的完整参数列表。

总结 

到此这篇关于Vue-Typed-JS打字动画效果实现的文章就介绍到这了,更多相关Vue-Typed-JS打字动画效果内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • vue中解决拖拽改变存在iframe的div大小时卡顿问题

    vue中解决拖拽改变存在iframe的div大小时卡顿问题

    这篇文章主要介绍了vue中解决拖拽改变存在iframe的div大小时卡顿问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • Vue-router 报错NavigationDuplicated的解决方法

    Vue-router 报错NavigationDuplicated的解决方法

    这篇文章主要介绍了Vue-router 报错NavigationDuplicated的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • 使用vis-timeline绘制甘特图并实现时间轴的中文化(案例代码)

    使用vis-timeline绘制甘特图并实现时间轴的中文化(案例代码)

    这篇文章主要介绍了使用vis-timeline绘制甘特图并实现时间轴的中文化(案例代码),本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-02-02
  • vue+vuecli+webpack中使用mockjs模拟后端数据的示例

    vue+vuecli+webpack中使用mockjs模拟后端数据的示例

    本篇文章主要介绍了vue+vuecli+webpack中使用mockjs模拟后端数据的示例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-10-10
  • Vue.js搭建移动端购物车界面

    Vue.js搭建移动端购物车界面

    这篇文章主要为大家详细介绍了Vue.js搭建移动端购物车界面,重点介绍基本结构和数据渲染,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11
  • 详解Vue2中组件间通信的解决全方案

    详解Vue2中组件间通信的解决全方案

    Vue中组件这个特性让不少前端er非常喜欢,我自己也是其中之一,它让前端的组件式开发更加合理和简单。下面这篇文章主要给大家介绍了关于Vue2中组件间通信的解决全方案,文中通过示例代码介绍的非常详细,需要的朋友们下面来一起看看吧。
    2017-07-07
  • 基于Vue+Node.js实现埋点功能全流程

    基于Vue+Node.js实现埋点功能全流程

    埋点(Track)是指在应用程序、网站或平台中添加代码,以记录特定用户行为和事件的做法,通过添加埋点代码,可以观察和分析用户行为,以调整和改进产品设计和使用体验,本文给大家介绍了基于Vue+Node.js实现埋点功能的全流程,需要的朋友可以参考下
    2025-04-04
  • Vue.js实现点击左右按钮图片切换

    Vue.js实现点击左右按钮图片切换

    这篇文章主要为大家详细介绍了Vue.js实现点击左右按钮图片切换,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-07-07
  • vue3 reactive 请求接口数据赋值后拿不到的问题及解决方案

    vue3 reactive 请求接口数据赋值后拿不到的问题及解决方案

    这篇文章主要介绍了vue3 reactive 请求接口数据赋值后拿不到的问题及解决方案,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2024-04-04
  • 深入浅析Vue.js 中的 v-for 列表渲染指令

    深入浅析Vue.js 中的 v-for 列表渲染指令

    当遍历一个数组或枚举一个对象进行迭代循环展示时,就会用到列表渲染指令 v-for。这篇文章主要介绍了Vue.js 中的 v-for 列表渲染指令,需要的朋友可以参考下
    2018-11-11

最新评论