Vue-lottie 简介及应用

一、什么是Vue-lottie

Vue-lottie 是一种在Vue应用程序中使用 LottieWeb动画的简便方法。Lottie是一个以JSON格式呈现Adobe After Effects动画的开源JavaScript库,具有在多个平台上呈现高质量矢量动画的能力。Vue-lottie是利用Lottie实现在 Vue.js 中呈现复杂动画的插件,带来了非常不错的用户体验。

二、vue-lottie 的应用

Vue-lottie 是在Vue项目中引用的, 要使用 vue-lottie 需要用到以下几步:

1.使用 Vue CLI创建Vue工程项目

vue init webpack vue-lottie-demo

2.通过 npm 在项目中安装 vue-lottie 插件

npm install vue-lottie --save

3.引入 Vue-lottie 到项目中

import Vue from 'vue'
import App from './App.vue'
import LottieAnimation from 'vue-lottie';
Vue.component('LottieAnimation', LottieAnimation)
new Vue({
  el: '#app',
  render: h => h(App)
})

4.将JSON格式的Lottie 动画导入到项目中

在项目src目录下创建资源文件夹 assets,将JSON格式的Lottie动画文件放到 assets 文件夹中。动画文件可以从 Lottie官方网站 中获取。

5.在Vue组件中使用Vue-lottie组件

在组件中使用 Vue-lottie 组件,并将导入的JSON格式的Lottie动画文件路径作为属性传递给组件,就可以在页面上看到该动画了。

<lottie-animation
  :animation-path="require('./../assets/animation.json')"
  :speed="1"
  :loop="true"
  :autoplay="true"
/>

三、vue-lottie 的实例

下面通过一个实例来说明 vue-lottie 如何使用。实例需求:我们需要在添加某一产品成功之后,弹出一个悬浮层,在其中添加一个从左向右飞行的小鸟动画,体现添加产品成功后的喜悦。

1. 在Vue组件中使用 Vue-lottie 组件

在 Vue 组件中引入 Vue-lottie 组件,并将导入的 JSON 格式的 Lottie 动画文件作为属性传递给组件,如下所示:

<template>
  <div class="page">
    <div class="alert" v-show="alert.status">
      <h4>增加产品功能</h4>
       <lottie-animation 
        :animation-path="lottie"
        :speed="1"
        :loop="true"
        :autoplay="true"
        :style="{width: '100%'}"
        className="logo"
      />
    </div>
    ...

</template>

<script>
  import LottieAnimation from 'vue-lottie';
  import successAnimation from '@/assets/json/success.json';
  export default {
    data() {
      return {
        lottie: successAnimation,
      };
    },
    components: {
      LottieAnimation,
    },
  };
</script>

2、在用户添加产品成功之后显示动画

当用户添加产品成功后,我们可以通过一个 alert 组件来显示动画效果,如下所示:

<template>
  <form class="form-horizontal">
    <div class="form-group has-feedback">
      ...
    </div>
    <button type="submit" @click="add" class="btn btn-primary">添加产品&nbsp;&nbsp;&nbsp;&nbsp;</button>
  </form>
  <div class="alert" v-show="alert.status">
    <h4>增加产品功能</h4>
    <lottie-animation 
      :animation-path="lottie"
      :speed="1"
      :loop="true"
      :autoplay="true"
      :style="{width: '100%'}"
      className="logo"
    />
  </div>
</template>

<script>
  import LottieAnimation from 'vue-lottie';
  import successAnimation from '@/assets/json/success.json';
  export default {
    data() {
      return {
        alert: {
          status: false,
        },
        name: '',
        lottie: successAnimation,
      };
    },
    methods: {
      add() {
        this.alert.status = true;
      }
    },
    components: {
      LottieAnimation,
    },
  };
</script>

上述代码实现该过渡效果,效果如下:

![lottie](https://user-images.githubusercontent.com/82015655/126780087-01a365eb-f6ec-4d6a-a388-274f7cb5f7fb.gif)

四、vue-lottie的插件API:

除了上述使用方式外,vue-lottie 还提供了一些API,可以帮助我们更好的进行开发。

1. animate()

该方法提供了从外部控制Lottie动画的能力:停止,开始,暂停,重置,seak,在我们的组件中可以根据用户的交互事件来触发相应的方法呈现相应的动画。

<template>
  <div>
    <lottie-animation 
      ref="lottieAnimation"
      :animation-path="require('@/assets/animation.json')"
      :speed="1"
      :loop="true"
      :autoplay="false"
      :style="{width: '100%'}"
      className="logo"
    />
    <button @click="play">Play</button>
    <button @click="stop">stop</button>
    <button @click="pause">pause</button>
  </div>
</template>

<script>
  import LottieAnimation from 'vue-lottie';
  export default {
    methods: {
      play() {
        this.$refs.lottieAnimation.animation.play();
      },
      stop() {
        this.$refs.lottieAnimation.animation.stop();
      },
      pause() {
        this.$refs.lottieAnimation.animation.pause();
      },
    },
    components: {
      LottieAnimation,
    },
  };
</script>

2. addEventListener()

该方法提供了用来处理每个与Lottie动画相关的事件的能力,预设了三个事件参数:complete, loopComplete 和 enterFrame。例如:监听动画的播放完成事件

<lottie-animation 
  ref="lottieAnimation"
  :animation-path="require('@/assets/animation.json')"
  :speed="1"
  :loop="false"
  :autoplay="false"
  :style="{width: '100%'}"
  className="logo"
/>

<script>
  import LottieAnimation from 'vue-lottie';
  export default {
    mounted() {
      this.$refs.lottieAnimation.animation.addEventListener('complete', () => {
        console.log('动画播放完成');
      });
    },
    components: {
      LottieAnimation,
    },
  };
</script>

总结

通过vue-lottie我们可以轻松集成Adobe After Effects的矢量动画,让动画变得更加简单、快捷,同时也可以通过API方法来实现一些动画的控制功能,相比较于其他的播放插件更具有灵活性和适用性。在实际的开发中,我们可以结合项目的实际需求,对动画进行更进一步的优化。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/296149.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-27 12:58
下一篇 2024-12-27 12:58

相关推荐

  • 使用Vue实现前端AES加密并输出为十六进制的方法

    在前端开发中,数据传输的安全性问题十分重要,其中一种保护数据安全的方式是加密。本文将会介绍如何使用Vue框架实现前端AES加密并将加密结果输出为十六进制。 一、AES加密介绍 AE…

    编程 2025-04-29
  • Java2D物理引擎简介及应用

    本文将介绍Java2D物理引擎的基本概念、实现原理及应用案例,以及对应代码示例。 一、物理引擎概述 物理引擎是一种计算机程序,用于模拟物理系统中的对象和其互动,如重力、碰撞、弹力等…

    编程 2025-04-29
  • Vue TS工程结构用法介绍

    在本篇文章中,我们将从多个方面对Vue TS工程结构进行详细的阐述,涵盖文件结构、路由配置、组件间通讯、状态管理等内容,并给出对应的代码示例。 一、文件结构 一个好的文件结构可以极…

    编程 2025-04-29
  • Django框架:从简介到项目实战

    本文将从Django的介绍,以及如何搭建Django环境开始,逐步深入到Django模型、视图、模板、表单,最后通过一个小型项目实战,进行综合性的应用,让读者获得更深入的学习。 一…

    编程 2025-04-28
  • Vue3的vue-resource使用教程

    本文将从以下几个方面详细阐述Vue3如何使用vue-resource。 一、安装Vue3和vue-resource 在使用vue-resource前,我们需要先安装Vue3和vue…

    编程 2025-04-27
  • Python三体运动简介

    本文将从多个方面详细阐述Python三体运动,包括什么是三体运动,三体运动的公式与原理,实现三体运动的Python代码等内容。 一、什么是三体运动? 三体运动是指三个天体相互作用所…

    编程 2025-04-27
  • ThinkPHP6 + Vue.js: 不使用Fetch的数据请求方法

    本文将介绍如何在ThinkPHP6和Vue.js中进行数据请求,同时避免使用Fetch函数。 一、AJAX:XMLHttpRequest的基础使用 在进行数据请求时,最基础的方式就…

    编程 2025-04-27
  • Vue模拟按键按下

    本文将从以下几个方面对Vue模拟按键按下进行详细阐述: 一、Vue 模拟按键按下的场景 在前端开发中,我们常常需要模拟按键按下的场景,比如在表单中填写内容后,按下“回车键”提交表单…

    编程 2025-04-27
  • Java中的僵尸进程简介与解决方法

    本文将对Java中的僵尸进程进行详细阐述,并给出几种解决方法。 一、僵尸进程的概念 在操作系统中,进程是指正在执行的程序。当一个进程创建了一个子进程,而该子进程完成了任务却没有被父…

    编程 2025-04-27
  • 开发前端程序,Vue是否足够?

    Vue是一个轻量级,高效,渐进式的JavaScript框架,用于构建Web界面。开发人员可以使用Vue轻松完成前端编程,开发响应式应用程序。然而,当涉及到需要更大的生态系统,或利用…

    编程 2025-04-27

发表回复

登录后才能评论