DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> 關於JavaScript >> 詳解vue2.0 transition 多個元素嵌套使用過渡
詳解vue2.0 transition 多個元素嵌套使用過渡
編輯:關於JavaScript     

在做vue的demo的時候遇到一個問題,多個嵌套的元素如何設置transition?

我的代碼:

<div id='demo'>
    <button @click="show = !show">按鈕</button>
    <transition name='move'>
      <div class="v-d" v-show="show">
        <div class='in in_move'></div>
      </div>
    </transition>
  </div>
//css
.v-d{
      width:50px;
      height:50px;
      padding:10px;
      transition: all 0.4s linear
    }
    .v-d .in{
      width:30px;
      height:30px;
      background:#000;
      transition: all 0.4s linear
    }
    .move-enter-active, .move-leave-active{
      transition: all 0.4s linear
    } 
    .move-enter, .move-leave-active{
      opacity: 0;
      transform: translateX(30px);
    } 
    .move-enter, .move-leave-active .in{
      transform: rotate(45deg)
    }   
//js
window.onload = function(){
    new Vue({
     el: '#demo',
     data: {
      show: false
     }
    })
  }

運行代碼後發現這個類名的過渡:

.move-enter, .move-leave-active .in{
  transform: rotate(180deg)
} 

沒起作用,我開始以為這種嵌套的寫法不支持,但是後來經過多次嘗試後發現,原來transition 應用的類名不能和基本樣的類名一樣,也就是.in這個類必須換名才能起作用,所以在改動下面代碼:

<transition name='move'>
 <div class="v-d">
  <div class='in in_move'></div>
 </div>
</transition>

.move-enter, .move-leave-active .in_move{
  transform: rotate(180deg)
} 

改完運行就ok了,實現了元素旋轉和位移。


XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved