解決vue的過渡動(dòng)畫無法正常實(shí)現(xiàn)問題
前記:最近在寫vue的一個(gè)項(xiàng)目要實(shí)現(xiàn)過渡的效果,雖然vue動(dòng)畫不是強(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里多加了一個(gè)opacitry的屬性值為1,這就導(dǎo)致其實(shí)整個(gè)動(dòng)畫過程中opacitry的值都為1而不會(huì)出現(xiàn)動(dòng)畫中由1到0的過渡;
導(dǎo)致這個(gè)問題的根本原因是因?yàn)閏ss優(yōu)先級(jí)的問題,div的css優(yōu)先級(jí)遠(yuǎn)大于動(dòng)畫中css屬性的優(yōu)先級(jí),所以opacity的值始終都是div中的值并不發(fā)生過渡變化;
那么解決的辦法其一當(dāng)然是去掉在div中的opacitry的值,從而使得只存在動(dòng)畫中的opacitry從而實(shí)現(xiàn)動(dòng)畫;
但是當(dāng)div中的屬性需要存在我們又需要過渡動(dòng)畫的時(shí)候,我們需要!important這尊大神去改變css的優(yōu)先級(jí);!important是使當(dāng)前css的優(yōu)先級(jí)達(dá)到最高當(dāng)然important就是優(yōu)先級(jí)最低;
來! 上正確的代碼
<!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)先級(jí)較高的css屬性
以上這篇解決vue的過渡動(dòng)畫無法正常實(shí)現(xiàn)問題就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- Vue入門之a(chǎn)nimate過渡動(dòng)畫效果
- vue實(shí)現(xiàn)列表滾動(dòng)的過渡動(dòng)畫
- 使用vue-router切換頁面時(shí)實(shí)現(xiàn)設(shè)置過渡動(dòng)畫
- vue中組件的過渡動(dòng)畫及實(shí)現(xiàn)代碼
- Vue 解決路由過渡動(dòng)畫抖動(dòng)問題(實(shí)例詳解)
- Vue運(yùn)用transition實(shí)現(xiàn)過渡動(dòng)畫
- Vue動(dòng)畫事件詳解及過渡動(dòng)畫實(shí)例
- 簡單談?wù)剉ue的過渡動(dòng)畫(推薦)
- Vue中的基礎(chǔ)過渡動(dòng)畫及實(shí)現(xiàn)原理解析
- Vue中實(shí)現(xiàn)過渡動(dòng)畫效果實(shí)例詳解
相關(guān)文章
vue項(xiàng)目中使用bpmn-自定義platter的示例代碼
這篇文章主要介紹了vue項(xiàng)目中使用bpmn-自定義platter的實(shí)例代碼,本文通過代碼截圖相結(jié)合給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-05-05
VUE 實(shí)現(xiàn)復(fù)制內(nèi)容到剪貼板的兩種方法
這篇文章主要介紹了VUE 實(shí)現(xiàn)復(fù)制內(nèi)容到剪貼板功能,本文通過兩種方法,給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下2019-04-04
vue下拉菜單組件(含搜索)的實(shí)現(xiàn)代碼
這篇文章主要介紹了vue下拉菜單組件(含搜索)的實(shí)現(xiàn)代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-11-11
Vue form表單動(dòng)態(tài)添加組件實(shí)戰(zhàn)案例
這篇文章主要介紹了Vue form表單動(dòng)態(tài)添加組件實(shí)戰(zhàn)案例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09
利用vue-router實(shí)現(xiàn)二級(jí)菜單內(nèi)容轉(zhuǎn)換
這篇文章主要介紹了如何利用vue-router實(shí)現(xiàn)二級(jí)菜單內(nèi)容轉(zhuǎn)換,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-11-11
詳解VUE-地區(qū)選擇器(V-Distpicker)組件使用心得
這篇文章主要介紹了詳解VUE-地區(qū)選擇器(V-Distpicker)組件使用心得,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-05-05

