Vue学习之动画小结(六)

一、Vue中实现动画的方式:https://cn.vuejs.org/v2/guide/transitions.html

Vue 在插入、更新或者移除 DOM 时,提供多种不同方式的应用过渡效果。
包括以下工具:

  • 在 CSS 过渡和动画中自动应用 class
  • 可以配合使用第三方 CSS 动画库,如 Animate.css
  • 在过渡钩子函数中使用 JavaScript 直接操作 DOM
  • 可以配合使用第三方 JavaScript 动画库,如 Velocity.js

二、使用过渡类名实现动画:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta
      name="viewport"
      content="width=
    , initial-scale=1.0"
    />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <title>donghua</title>
    <link rel="stylesheet" href="./lib/animate.css" />
    <style>
      /* 2.自定义两组样式,来控制 transition 内部的元素实现动画 */
      /* v-enter【这是一个时间点】是进入之前,元素的起始状态,此时还没有开始进入 */
      /* v-leave-to 【这是一个时间点】 是动画离开之后,离开的终止状态,此时,元素 动画已经结束了*/
      .v-enter,
      .v-leave-to {
        opacity: 0;
        /* 沿着X轴 */
        /* transform: translateX(150px); */
        /* 沿着Y轴 */
        transform: translateY(150px);
      }
      /*v-enter-active【入场动画的时间段】  */
      /* v-leave-active【离场动画的时间段】 */

      .v-enter-active,
      .v-leave-active {
        transition: all 0.8s ease;
      }
    </style>
  </head>

  <body>
    <script src="./lib/vue.js"></script>
    <div id="app">
      <input type="button" value="toggle" @click="flag=!flag" />
      <!-- 需求:点击按钮,让H3显示,再点击,让H3隐藏 -->
      <!-- 1、使用 transition 元素,把需要被动画控制的元素,包裹起来 -->
      <transition>
        <h3 v-if="flag">这是一个H3</h3>
      </transition>
    </div>

    <script>
      var vm = new Vue({
        el: "#app",
        data: {
          flag: false
        }
      });
    </script>
  </body>
</html>

三、使用animate.css类实现动画:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta
      name="viewport"
      content="width=
    , initial-scale=1.0"
    />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <title>donghua</title>
    <link rel="stylesheet" href="./lib/animate.css" />
  </head>

  <body>
    <script src="./lib/vue.js"></script>
    <div id="app">
      <input type="button" value="toggle" @click="flag=!flag" />
      <!-- 使用 :duration="{ enter :200, leave: 400}"来分别设置 入场的时长和 离场的时长  -->
      <transition
        enter-active-class="bounceIn"
        leave-active-class="bounceOut"
        :duration="{ enter :200, leave: 400}"
      >
        <h3 v-if="flag" class="animated">这是一个H3</h3>
      </transition>
    </div>

    <script>
      var vm = new Vue({
        el: "#app",
        data: {
          flag: false
        }
      });
    </script>
  </body>
</html>

原文地址:https://www.cnblogs.com/21-forever/p/11107351.html

时间: 2024-08-02 22:56:06

Vue学习之动画小结(六)的相关文章

Vue学习之vue-resource小结(五)

一.Vue实现数据交互的方式: 1.Vue除了vue-resource之外,还可以使用‘axios’的第三方包实现数据的请求: 2.常见的数据请求类型有: get.post.jsonp 3.JSONP的实现原理: 由于浏览器的安全性限制,不允许AJAX访问,协议不同.域名不同.端口号不同的数据接口,浏览器认为这种访问不安全: 可以通过动态创建script标签的形式,把script标签的src属性,指向数据接口的地址,因为script标签不存在跨域限制,这种数据获取方式,称为JSONP(注意:根据

Vue学习之组件小结(七)

一.组件: 组件的出现,就是为了拆分Vue实例的代码量的,能够让我们以不同的组件,来划分不同的功能模块,将来我们需要什么样的功能,就可以去调用相应的组件即可. 二.组件和模块: 1.模块化:是从代码逻辑的角度进行划分的:方便代码分层开发,保证每个功能模块的只能单一: 2.组块化:是从UI界面的角度进行划分的:前端的组块化,方便UI组件的重用. 三.定义全局组件的方式: 三种方式: <!DOCTYPE html> <html lang="en"> <head

quick-cocos2d-x 学习系列之十六 塔防完结

quick-cocos2d-x 学习系列之十六 塔防完结 1.  math2d.lua文件 该文件实现了常用的数学函数. Dist函数实现两点的距离. radians4point求两点的夹角(弧度) pointAtCircle求圆上一个点的位置 pointAtLineToPoint求线段上与指定点距离最近的点 degrees2radians角度转换为弧度 radians2degrees弧度转换为角度 2.  utils.lua文件 2.1         drawCircle 返回newCirc

Vue学习笔记进阶篇——过渡状态

本文为转载,原文:Vue学习笔记进阶篇--过渡状态Vue 的过渡系统提供了非常多简单的方法设置进入.离开和列表的动效.那么对于数据元素本身的动效呢,比如: 数字和运算 颜色的显示 SVG 节点的位置 元素的大小和其他的属性 所有的原始数字都被事先存储起来,可以直接转换到数字.做到这一步,我们就可以结合 Vue 的响应式和组件系统,使用第三方库来实现切换元素的过渡状态. 状态动画和watcher 通过 watcher 我们能监听到任何数值属性的数值更新.可能听起来很抽象,所以让我们先来看看使用 T

Vue学习笔记进阶篇——列表过渡及其他

本文为转载,原文:Vue学习笔记进阶篇--列表过渡及其他本文将介绍Vue中的列表过渡,动态过渡, 以及可复用过渡是实现. 列表过渡 目前为止,关于过渡我们已经讲到: 单个节点 同一时间渲染多个节点中的一个 那么怎么同时渲染整个列表,比如使用 v-for ?在这种场景中,使用 <transition-group>组件.在我们深入例子之前,先了解关于这个组件的几个特点: 不同于 <transition>, 它会以一个真实元素呈现:默认为一个<span>.你也可以通过 tag

Vue学习笔记进阶篇——多元素及多组件过渡

本文为转载,原文:Vue学习笔记进阶篇--多元素及多组件过渡 多元素的过渡 对于原生标签可以使用 v-if/v-else.但是有一点需要注意: 当有相同标签名的元素切换时,需要通过 key 特性设置唯一的值来标记以让 Vue 区分它们,否则 Vue 为了效率只会替换相同标签内部的内容.即使在技术上没有必要,给在 <transition> 组件中的多个元素设置 key 是一个更好的实践. 示例: <transition> <button v-if="isEditing

Vue学习笔记入门篇——组件的使用

本文为转载,原文:Vue学习笔记入门篇--组件的使用 组件定义 组件 (Component) 是 Vue.js 最强大的功能之一.组件可以扩展 HTML 元素,封装可重用的代码.在较高层面上,组件是自定义元素,Vue.js 的编译器为它添加特殊功能.在有些情况下,组件也可以是原生 HTML 元素的形式,以 is 特性扩展. 组件使用 注册 注册一个全局组件,你可以使用 Vue.component(tagName, options).组件在注册之后,便可以在父实例的模块中以自定义元素 的形式使用.

Vue学习笔记入门篇——组件的内容分发(slot)

本文为转载,原文:Vue学习笔记入门篇--组件的内容分发(slot) 介绍 为了让组件可以组合,我们需要一种方式来混合父组件的内容与子组件自己的模板.这个过程被称为 内容分发 (或 "transclusion" 如果你熟悉 Angular).Vue.js 实现了一个内容分发 API,使用特殊的 'slot' 元素作为原始内容的插槽. 编译作用域 在深入内容分发 API 之前,我们先明确内容在哪个作用域里编译.假定模板为: <child-component> {{ messa

Vue学习笔记入门篇——组件的通讯

本文为转载,原文:Vue学习笔记入门篇--组件的通讯 组件意味着协同工作,通常父子组件会是这样的关系:组件 A 在它的模版中使用了组件 B.它们之间必然需要相互通信:父组件要给子组件传递数据,子组件需要将它内部发生的事情告知给父组件.然而,在一个良好定义的接口中尽可能将父子组件解耦是很重要的.这保证了每个组件可以在相对隔离的环境中书写和理解,也大幅提高了组件的可维护性和可重用性.在 Vue 中,父子组件的关系可以总结为 props down, events up.父组件通过 props 向下传递