我想稍微擴大basic example for transitions和具有的一個元素div
,並在同一時間的另一淡入淡出:爲什麼轉型的狀態一旦結束就不會維持?
new Vue({
el: '#demo',
data: {
show: true
}
})
.fade-enter-active,
.fade-leave-active {
transition: opacity 2s
}
.fade-enter,
.fade-leave-to {
opacity: 0
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.3.3/vue.js"></script>
<div id="demo">
<button v-on:click="show = !show">
Toggle
</button>
<transition name="fade">
<p v-show="show">hello</p>
</transition>
<transition name="fade">
<p v-show="!show">hello</p>
</transition>
</div>
然而,這並不如預期的工作:上面的hello
淡出並且下面的一個淡入(到目前爲止),但是然後下面的一個消失並且上面的一個出現(立即,好像狀態已經改變並且沒有轉換)。
當再次單擊該按鈕時,看起來轉換是正確的(它開始於較低的hello
淡出並且較高的淡入)。
CSS是對稱的,狀態只在按下按鈕時纔會改變 - 所以我不理解第一次轉換後的立即切換?
第二個沒有消失 - 它只是跳轉到頂部,當第一元素的不透明度= 0(第一個元素完全消失,其空間變空)。在div中製作不同的文本以查看它。 – wostex