赞
踩
使用<transition></transition>
给vue中dom原始加入css过渡动画
enter-active
是控制载入时的样式名的后缀
leave-active
是控制消失时的样式名的后缀
<style> .animation-enter-active{ animation: aaa 1.5s; } /* 动画样式 animation 为名字(自己随便定义), 后面的enter-active 和 leave-active 分别代表进场和出场 Vue 会自动识别 */ .animation-leave-active{ animation: aaa 1.5s reverse; } @keyframes aaa{ 0% { opacity: 0; transform: translateX(100%); } 100% { opacity: 1; transform: translateX(0%); } } </style>
<transition></transition>
是vue自带的
通过属性name=样式名
来给其内的HTML标签添加过渡动画,vue会自动的根据dom元素改变从而添加载入动画和消失动画
appear
加上后会在第一次加载dom元素时就加载过渡动画
代码示例:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <script src="vue.js"></script> <style> .animation-enter-active{ animation: aaa 1.5s; } /* 动画样式 animation 为名字(自己随便定义), 后面的enter-active 和 leave-active 分别代表进场和出场 Vue 会自动识别 */ .animation-leave-active{ animation: aaa 1.5s reverse; } @keyframes aaa{ 0% { opacity: 0; transform: translateX(100%); } 100% { opacity: 1; transform: translateX(0%); } } </style> </head> <body> <div id="box"> <button @click="isShow = !isShow">click</button> <transition name="animation" appear> <!-- transition 为vue中的dom添加样式 appear 为初始的时候就加入动画, 就是刷新页面 transition 里面只能存在一个同级的根标签, --> <div v-show="isShow">000000000000000000000000000</div> </transition> </div> <script> new Vue({ el:"#box", data:{ isShow:true } }) </script> </body> </html>
<transition name="animation" appear>
<div v-if="isShow">000000000000000000000000000</div>
<div v-else>111111111111111111111111</div>
</transition>
<body> <div id="box"> <button @click="isShow = !isShow">click</button> <transition name="animation" appear> <div v-if="isShow" key="000">000000000000000000000000000</div> <div v-else key="111">111111111111111111111111</div> </transition> </div> <script> new Vue({ el:"#box", data:{ isShow:true } }) </script> </body>
<transition-group>
不同于transition, 它会以一个真实的标签呈现: 默认是为一个是<span>
标签, 可以通过 tag 更换其他标签<body> <div id="box"> <input type="text" v-model="name" > <button @click="handleAdd">add</button> <!-- <ul> --> <!-- <transition-group>不同于transition, 它会以一个真实的标签呈现: 默认是为一个是<span>标签, 可以通过 tag 更换其他标签---> <transition-group tag="ul" name="animation"> <li v-for=" item in list" :key="item"> {{ item }} </li> </transition-group> <!-- </ul> --> </div> <script> new Vue({ el:"#box", data:{ name:"", list:[] }, methods:{ handleAdd(){ console.log("记得加入不同的",this.name) console.log(this.list) this.list.push(this.name) this.name='' } } }) </script> </body>
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。