进入/离开 & 列表过渡
示例一:
<style> /* 移动的时间 */ .fade-enter-active{ transition: all .3s ease; } /* 移动的方向,和过渡 */ .fade-leave-active{ transition: all .8s cubic-bezier(1.0, 0.5, 0.8, 1.0); } /* 开始和结束的状态 */ .fade-enter,.fade-leave-to{ transform: translateX(10px); opacity: 0; } </style> <body> <div id="main"> <button v-on:click="ok = !ok">点击</button> <transition name="fade"> <p v-if="ok">侠课岛-vue动画课程</p> </transition> </div> </body> <script> var vm = new Vue({ el: '#main', data: { ok: true } }); </script>
示例二:
添加与删除数字动画修改
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>侠课岛 vue-列表动画</title> <script src="Vue.min.js"></script> <script src="js/lodash.min.js"></script> <style type="text/css"> .list-item{ width: 30px; height: 30px; line-height: 30px; text-align: center; border: 1px solid green; display: inline-block; } .list-enter-active,.list-leave-active{ transition: all 1s; } .list-enter,.list-leave-to { opacity: 0; transform: translateY(30px); } </style> </head> <dy> <div id="main"> <button v-on:click="add">添加数字</button> <button v-on:click="remove">删除数字</button> <transition-group name="list"> <span v-for="item in items" v-bind:key="item" class="list-item"> {{ item }} </span> </transition-group> </div> </body> <scpt> var vm = new Vue({ el: '#main', data: { items: [1, 2, 3, 4, 5, 6, 7, 8, 9], nextNum: 10 }, methods: { // 定义一个随机添加的方法 randomIndex: function() { return Math.floor(Math.random() * this.items.length) }, // 添加数字方法 add: function() { this.items.splice(this.randomIndex(), 0, this.nextNum++) }, // 删除数字方法 remove: function() { this.items.splice(this.randomIndex(), 1) }, } }); </script> </html>