美文网首页
vue列表过渡

vue列表过渡

作者: 一点金光 | 来源:发表于2019-08-22 13:03 被阅读0次

    列表过渡

    实现

    使用 <transition-group> 组件.
    它会以一个真实元素呈现:默认为一个 <span>。你也可以通过 tag 特性更换为其他元素。
    内部元素 总是需要 提供唯一的 key 属性值
    

    列表的进出过渡

    <!--内容-->
    <div id="list-demo" class="demo">
      <button v-on:click="add">Add</button>
      <button v-on:click="remove">Remove</button>
      <transition-group name="list" tag="p">
        <span v-for="item in items" v-bind:key="item" class="list-item">
          {{ item }}
        </span>
      </transition-group>
    </div>
    
    //脚本
    new Vue({
      el: '#list-demo',
      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)
        },
      }
    })
    
    //样式
    .list-item {
      display: inline-block;
      margin-right: 10px;
    }
    .list-enter-active, .list-leave-active {
      transition: all 1s;
    }
    .list-enter, .list-leave-to
    /* .list-leave-active for below version 2.1.8 */ {
      opacity: 0;
      transform: translateY(30px);
    }
    

    列表的排序过渡

    解决

     v-move特性实现改变定位;
     name  属性来自定义前缀;
    也可以通过 move-class 属性手动设置。
    

    示例

    <!--内容-->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.14.1/lodash.min.js"></script>
    
    <div id="flip-list-demo" class="demo">
      <button v-on:click="shuffle">Shuffle</button>
      <transition-group name="flip-list" tag="ul">
        <li v-for="item in items" v-bind:key="item">
          {{ item }}
        </li>
      </transition-group>
    </div>
    
    //脚本
    new Vue({
      el: '#flip-list-demo',
      data: {
        items: [1,2,3,4,5,6,7,8,9]
      },
      methods: {
        shuffle: function () {
          this.items = _.shuffle(this.items)
        }
      }
    })
    
    //样式
    .flip-list-move {
      transition: transform 1s;
    }
    
    

    列表的交错过渡

    相关文章

      网友评论

          本文标题:vue列表过渡

          本文链接:https://www.haomeiwen.com/subject/zzhneftx.html