ing 发表于 2019-10-1 16:56

css translateY引发的困惑

本帖最后由 ing 于 2019-10-1 17:24 编辑

.list-enter-active,
    .list-leave-active {
      transition: all 1s;
    }

    .list-enter, .list-leave-to {
      opacity: 0;
      transform: translateY(100px);
    }
为什么
transform: translateY(100px);
在屏蔽 display:inline-block 属性后没有效果(在原地消失,没有向上/下的过渡效果)



完整
<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>

<body>

<!-- <div id="app"></div> -->

<script src="https://unpkg.com/vue"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/velocity/1.2.3/velocity.min.js"></script>

<div id="list-demo" style="margin-top:120px;">
    <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>

<script type="text/javascript">
    var vm = new Vue({
      el: '#list-demo',
      data: {
      items: ,
      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>

<style>
    .list-item {
      display: inline-block;
      margin-right: 10px;
    }

    .list-enter-active,
    .list-leave-active {
      transition: all 1s;
    }

    .list-enter, .list-leave-to {
      opacity: 0;
      transform: translateY(100px);
    }

</style>

</html>
页: [1]
查看完整版本: css translateY引发的困惑