zoukankan      html  css  js  c++  java
  • Vue,动画-列表动画(添加,删除,进场效果)

    Vue,动画-列表动画(添加,删除)

      1 <!DOCTYPE html>
      2 <html lang="en">
      3 <head>
      4     <meta charset="UTF-8">
      5     <meta name="viewport" content="width=device-width, initial-scale=1.0">
      6     <meta http-equiv="X-UA-Compatible" content="ie=edge">
      7     <title>Document</title>
      8     <script src="../js/vue.js"></script>
      9     <script src="../js/vue-resource-1.3.4.js"></script>
     10 </head>
     11 <style>
     12     li{
     13         border: 1px dashed #999;
     14         margin: 5px;
     15         line-height: 35px;
     16         padding-left: 5px;
     17         font-size: 12px;
     18         width: 100%;
     19     }
     20 
     21     li:hover{
     22         background-color: blue;
     23         transition: all 1s ease;
     24     }
     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.5s ease; 
     35     }
     36 
     37     /* 下面的 .v-move 和 .v-leave-active 配合使用, 能够实现列表后续的元素, 渐渐地飘上来的结果 */
     38     .v-move{
     39         transition: all 0.5s ease;
     40     }
     41 
     42     .v-leave-active{
     43         position: absolute;
     44     }
     45 </style>
     46 <body>
     47     <div id="app">
     48 
     49         <div>
     50 
     51             <label>
     52                 Id:
     53                 <input type="text" v-model="id">
     54             </label>
     55 
     56             <label>
     57                 Name:
     58                 <input type="text"  v-model="name">
     59             </label>
     60 
     61 
     62             <input type="button" value="添加" @click="add">
     63 
     64         </div>
     65 
     66 
     67         <ul>
     68             <!-- 在实现列表过渡的时候, 如果需要过渡的元素, 是通过 v-for 循环渲染出来的, 不能使用 transition 包裹, 需要使用 transitionGroup -->
     69             <!-- 如果要为 v-for 循环创建的元素设置动画, 必须为每一个 元素 设置 :key 属性 -->
     70             <transition-group appear>
     71 
     72                 <!-- 删除需要传入i -->
     73                 <li v-for="(item, i) in list" :key="item.id" @click="del(i)">
     74                     {{ item.id }}  ---  {{ item.name }}
     75                 </li>
     76             </transition-group> 
     77             
     78         </ul>
     79     </div>
     80 </body>
     81 </html>
     82 <script>
     83   var vm = new Vue({
     84       el:'#app',
     85       data:{
     86           id:'',
     87           name:'',
     88         list:[
     89             {id: 1, name: '赵高' },
     90             {id: 2, name: '秦桧' },
     91             {id: 3, name: '严嵩' },
     92             {id: 4, name: '魏忠贤' }
     93         ]
     94       },
     95       methods:{
     96 
     97         add(){
     98             this.list.push( {id : this.id, name : this.name })
     99             this.id  = this.name = ""
    100         },
    101         del(i){
    102             // 从 i 的地方删, 删除一个
    103             this.list.splice(i, 1)
    104         }
    105 
    106       }
    107   })
    108 </script>

    效果图

  • 相关阅读:
    回复结束
    UVA 10537
    RTP 记录 log 该机制
    python 时间处理
    照片总结---选择适当的NoSQL
    博客测试:博客系统i94web beta1.0 申请测试
    SQL随着子查询结果更新多个字段
    2机器学习实践笔记(k-最近邻)
    Android_Service组件详解
    Android多媒体分析-通过MediaStore获取Audio信息
  • 原文地址:https://www.cnblogs.com/wo1ow1ow1/p/11102526.html
Copyright © 2011-2022 走看看