一、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-10-04 16:16:45