Vue.js 列表动画

大兔子大兔子 提交于 2019-11-30 18:06:25

进入/离开 & 列表过渡

示例一:

<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>

<body>
  <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>

<script>
  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>

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!