最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

解決vue的過渡動畫無法正常實(shí)現(xiàn)問題

 更新時間:2019年10月31日 18:38:47   作者:makerbeen  
今天小編就為大家分享一篇解決vue的過渡動畫無法正常實(shí)現(xiàn)問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

前記:最近在寫vue的一個項(xiàng)目要實(shí)現(xiàn)過渡的效果,雖然vue動畫不是強(qiáng)項(xiàng),庫也多,但是基本的坑還是得踩扎實(shí);

建議:先學(xué)習(xí)vue官方文檔的進(jìn)入/離開 & 列表過渡章節(jié),那么我們來看bug;

首先上出現(xiàn)問題的代碼

<!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">點(diǎn)擊</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>

以上代碼看起起來真的沒有什么問題,但是復(fù)制粘貼發(fā)現(xiàn)過渡怎么變成了延遲,仔細(xì)閱讀官方文檔找不同,連連看;

我們要過度的屬性是opacity,相對于官方文檔我們在要過渡的div里多加了一個opacitry的屬性值為1,這就導(dǎo)致其實(shí)整個動畫過程中opacitry的值都為1而不會出現(xiàn)動畫中由1到0的過渡;

導(dǎo)致這個問題的根本原因是因?yàn)閏ss優(yōu)先級的問題,div的css優(yōu)先級遠(yuǎn)大于動畫中css屬性的優(yōu)先級,所以opacity的值始終都是div中的值并不發(fā)生過渡變化;

那么解決的辦法其一當(dāng)然是去掉在div中的opacitry的值,從而使得只存在動畫中的opacitry從而實(shí)現(xiàn)動畫;

但是當(dāng)div中的屬性需要存在我們又需要過渡動畫的時候,我們需要!important這尊大神去改變css的優(yōu)先級;!important是使當(dāng)前css的優(yōu)先級達(dá)到最高當(dāng)然important就是優(yōu)先級最低;

來! 上正確的代碼

<!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">點(diǎn)擊</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>

這樣就既可以實(shí)現(xiàn)過渡效果也不拆去div中優(yōu)先級較高的css屬性

以上這篇解決vue的過渡動畫無法正常實(shí)現(xiàn)問題就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

抚州市| 黄石市| 安义县| 博客| 建平县| 洮南市| 丽水市| 桂平市| 宁强县| 喜德县| 柳江县| 岑巩县| 民勤县| 丹凤县| 晋宁县| 天峨县| 福建省| 台中县| 资阳市| 和龙市| 洛隆县| 辉县市| 大兴区| 德保县| 顺义区| 平远县| 文水县| 新津县| 安吉县| 确山县| 哈巴河县| 石泉县| 扶沟县| 江孜县| 漳平市| 武鸣县| 油尖旺区| 汝南县| 瑞丽市| 临江市| 郑州市|