vueの移行アニメを解決するのは正常に実現できません。


前记:最近vueのプロジェクトを书いていますが、移行の効果を実现したいです。vueアニメは得意分野ではないです。ライブラリも多いです。
提案:まずvue公式文書のエントリ/オフ&リスト移行章を勉強します。それではbugを見に来ます。
まず問題が発生したコード

<!DOCTYPE html>
<html>
<head>
  <title></title>
  <style type="text/css">
    .haha-leave-active {
     transition: opacity .5s;
    }
    .haha-leave-to /* .fade-leave-active below version 2.1.8 */ {
     opacity: 0;
    }
    #demo{
     position: relative;
     width: 200px;
     height: 200px;
     margin: auto;
     top: 100px;
    }
    .bug{
     position: relative;
     opacity: 1;
    }
  </style>
<script src="https://unpkg.com/vue/dist/vue.js"></script>
<script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>
</head>
<body>
  <div id="demo">
   <button v-on:click="show = !show">  </button>
   <transition name="haha">
     <div class="bug" v-if="show">  </div>
   </transition>
  </div>
  <script type="text/javascript">
    new Vue({
     el: '#demo',
     data: {
      show: true
     }
    })
  </script>
</body>
</html>
以上のコードを見たら本当に問題はありませんが、コピーして貼り付けたらどうやって移行が遅くなりましたか?公式文書をよく読んで違いを探して、繰り返し見ます。
私たちが行きすぎた属性はopacityです。公式文書に対して、私たちは1つのopacityの属性値を追加しました。これはアニメ全体の過程でopacityの値が1で、アニメの中で1から0への移行がないということになります。
この問題の根本的な原因はcss優先度の問題であり、divのcss優先度は動画中のcss属性の優先度よりも遥かに大きいため、opacityの値はあくまでもdivの値であり、遷移の変化は発生しない。
その解決策の一つはもちろんdivの中のopacitryの値を取り除いて、それによってアニメーションの中のopacityだけが存在してそれによってアニメーションを実現させます。
しかし、divの属性が存在する必要があります。私たちはアニメーションを移行する必要があります。impotantこの大神はcssの優先度を変えに行きます。impotantは現在のcssの優先度を最高にすることであり、もちろんimportは優先度が最も低いことである。
さあ正しいコードを付ける

<!DOCTYPE html>
<html>
<head>
  <title></title>
  <style type="text/css">
    .haha-leave-active {
     transition: opacity .5s;
    }
    .haha-leave-to /* .fade-leave-active below version 2.1.8 */ {
     opacity: 0;
    }
    #demo{
     position: relative;
     width: 200px;
     height: 200px;
     margin: auto;
     top: 100px;
    }
    .bug{
     position: relative;
     opacity: 1 important;
    }
  </style>
<script src="https://unpkg.com/vue/dist/vue.js"></script>
<script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>
</head>
<body>
  <div id="demo">
   <button v-on:click="show = !show">  </button>
   <transition name="haha">
     <div class="bug" v-if="show">  </div>
   </transition>
  </div>
  <script type="text/javascript">
    new Vue({
     el: '#demo',
     data: {
      show: true
     }
    })
  </script>
</body>
</html>
このようにして、移行効果を実現することもできますし、divにおいて優先度の高いcss属性を外すこともできません。
以上のように、vueの移行アニメが正常に実現できない問題は、小編が皆さんに提供している内容の全てです。参考にしていただければと思います。よろしくお願いします。