Vue系列之 => 列表动画

  1 <!DOCTYPE html>
  2 <html lang="en">
  3 
  4 <head>
  5     <meta charset="UTF-8">
  6     <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7     <meta http-equiv="X-UA-Compatible" content="ie=edge">
  8     <title>Document</title>
  9     <script src="./lib/jquery2.1.4.min.js"></script>
 10     <script src="./lib/Vue2.5.17.js"></script>
 11     <link href="https://cdn.bootcss.com/animate.css/3.7.0/animate.css" rel="stylesheet">
 12     <style>
 13         li {
 14             width:100%;
 15             border : 1px dashed #999;
 16             margin : 5px;
 17             line-height : 35px;
 18             padding-left: 5px;
 19             font-size: 12px;
 20         }
 21 
 22         li:hover{
 23             background-color: antiquewhite;
 24             transition: all 0.8s ease;
 25         }
 26         .v-enter,
 27         .v-leave-to{
 28             opacity: 0;
 29             transform: translateY(80px);
 30         }
 31 
 32         .v-enter-active,
 33         .v-leave.active{
 34             transition : all 0.6s ease;
 35         }
 36 
 37         /* .v-move 和 .v-leave-active 配合使用能够实现列表后续的元素渐进 */
 38         .v-move {
 39             transition: all 0.6s ease;
 40         }
 41         .v-leave-active {
 42             position: absolute;
 43         }
 44     </style>
 45 </head>
 46 
 47 <body>
 48     <div id="app">
 49         <div>
 50             <label for="">ID:
 51                 <input type="text" v-model="id">
 52             </label>
 53 
 54             <label for="">Name:
 55                 <input type="text" v-model="name">
 56             </label>
 57             <input type="button" value="添加" @click="add">
 58         </div>
 59 
 60         <ul>
 61             <!-- <li v-for="item in list" :key="item.id">
 62                 {{ item.id }} --- {{  item.name }}
 63             </li> -->
 64             <!-- 在实现列表过渡的时候,如果需要过渡的元素是通过v-for循环出来的,不能使用
 65             transition 包裹,需要使用 transitionGroup -->
 66             <!-- appear属性实现页面载入时的入场效果 -->
 67             <!-- vue默认会渲染成span标签,tag指定渲染为ul -->
 68             <transition-group appear tag="ul">
 69                 <li v-for="(item,i) in list" :key="item.id" @click="del(i)">
 70                     {{ item.id }} -- {{ i }} -- {{ item.name }}
 71                 </li>
 72             </transition-group>
 73         </ul>
 74     </div>
 75     <script>
 76         var vm = new Vue({
 77             el: '#app',
 78             data: {
 79                 id: '',
 80                 name: '',
 81                 list: [{
 82                         id: 1,
 83                         name: '张三'
 84                     },
 85                     {
 86                         id: 2,
 87                         name: '李四'
 88                     },
 89                     {
 90                         id: 3,
 91                         name: '王五'
 92                     },
 93                     {
 94                         id: 4,
 95                         name: '王金'
 96                     },
 97                 ]
 98             },
 99             methods: {
100                 add() {
101                     this.list.push({
102                         id: this.id,
103                         name: this.name
104                     });
105                     this.id = this.name = '';
106                 },
107                 del(index) {
108                     this.list.splice(index,1);
109                 }
110             },
111         })
112     </script>
113 </body>
114 
115 </html>

 

转载于:https://www.cnblogs.com/winter-shadow/p/10202872.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值