摘要:在元素被插入之前生效,在元素被插入之后的下一幀移除。定義進(jìn)入過渡生效時(shí)的狀態(tài)。這個(gè)類可以被用來定義進(jìn)入過渡的過程時(shí)間,延遲和曲線函數(shù)。我們用特性來擴(kuò)展,從而達(dá)到可以在這些受限制的元素中使用。
本文基于vue官方文檔,分別為:動(dòng)態(tài)組件 & 異步組件、插槽、進(jìn)入/離開 & 列表過渡 章節(jié)鏈接描述
要想實(shí)現(xiàn)tab動(dòng)畫,首先要了解vue中哪些元素/那些組件適合在那些條件下實(shí)現(xiàn)動(dòng)畫效果
條件渲染 (使用 v-if)
條件展示 (使用 v-show)
動(dòng)態(tài)組件
組件根節(jié)點(diǎn)
vue官方文檔中有這樣一個(gè)例子
hello
當(dāng)你在transition上添加指定的name后,vue在進(jìn)入/離開的過渡中,會(huì)有 6 個(gè) class 切換,分別為:
name-enter、name-enter-active、name-enter-to、name-leave、name-leave-active、name-leave-to
如圖所示:
v-enter:定義進(jìn)入過渡的開始狀態(tài)。在元素被插入之前生效,在元素被插入之后的下一幀移除。v-enter-active:定義進(jìn)入過渡生效時(shí)的狀態(tài)。在整個(gè)進(jìn)入過渡的階段中應(yīng)用,在元素被插入之前生效,在過渡/動(dòng)畫完成之后移除。這個(gè)類可以被用來定義進(jìn)入過渡的過程時(shí)間,延遲和曲線函數(shù)。
v-enter-to: 2.1.8版及以上 定義進(jìn)入過渡的結(jié)束狀態(tài)。在元素被插入之后下一幀生效 (與此同時(shí) v-enter
被移除),在過渡/動(dòng)畫完成之后移除。v-leave: 定義離開過渡的開始狀態(tài)。在離開過渡被觸發(fā)時(shí)立刻生效,下一幀被移除。
v-leave-active:定義離開過渡生效時(shí)的狀態(tài)。在整個(gè)離開過渡的階段中應(yīng)用,在離開過渡被觸發(fā)時(shí)立刻生效,在過渡/動(dòng)畫完成之后移除。這個(gè)類可以被用來定義離開過渡的過程時(shí)間,延遲和曲線函數(shù)。
v-leave-to: 2.1.8版及以上 定義離開過渡的結(jié)束狀態(tài)。在離開過渡被觸發(fā)之后下一幀生效 (與此同時(shí) v-leave
被刪除),在過渡/動(dòng)畫完成之后移除。
所以我們要想實(shí)現(xiàn)tab切換動(dòng)畫,只需要在transition中添加我們每個(gè)多帶帶tab頁的子組件
1.用ul(無序列表)創(chuàng)建tab上方導(dǎo)航
data中的定義
data () { return { currentTabComponent: "tab1", // tab頁默認(rèn)顯示第一項(xiàng) tabIndex: 0, transitionName: "" // tab根據(jù)既定格式定義 tabs: [ { id: "tab1", desc: "首頁" }, { id: "tab2", desc: "聯(lián)系我們" }, { id: "tab3", desc: "與我相關(guān)" } ] } },
設(shè)置li橫向排布,我創(chuàng)建的時(shí)候是把每個(gè)導(dǎo)航名稱放在data里,用v-for做循環(huán)
2.具體設(shè)置每個(gè)tab頁
組件功能是vue項(xiàng)目的一大特色。組件可以擴(kuò)展html元素,可以封裝可重用的代碼。我們用is特性來擴(kuò)展,從而達(dá)到可以在這些受限制的html元素中使用。is會(huì)將currentTabComponent的值轉(zhuǎn)換成指定的組件形式:
如果currentTabComponent為my-component
轉(zhuǎn)化后為:
在tab導(dǎo)航點(diǎn)擊時(shí)修改tabIndex,此時(shí)監(jiān)聽tabIndex的變化,當(dāng)目的值>原始值,向右滑動(dòng),反之向左滑動(dòng)
tabIndex (to, from) { let that = this; that.transitionName = (to > from) ? "forward" : "backward"; }
設(shè)置vue動(dòng)畫六個(gè)狀態(tài)的class的效果,此項(xiàng)目中因?yàn)榇嬖趦煞N滑動(dòng)狀態(tài),所以有12個(gè)class
.forward-enter-active,.forward-leave-active{ transition: 0.5s all ease; transform: translateX(0); } .forward-enter{ transform: translateX(100%); } .forward-enter-to{ transform: translateX(0); } .forward-leave { transform: translate3d(0, 0, 0); } .forward-leave-to { transform: translate3d(-100%, 0, 0); } .backward-enter-active, .backward-leave-active { transition: all 0.5s; } .backward-leave { transform: translate3d(0, 0, 0); } .backward-leave-to { transform: translate3d(100%, 0, 0); } .backward-enter { transform: translate3d(-100%, 0, 0); } .backward-enter-to { transform: translate3d(0, 0, 0); }
遇到問題:
在兩個(gè)tab頁相互切換時(shí),當(dāng)前div沒被移走,將會(huì)導(dǎo)致下一個(gè)將會(huì)一直存在于當(dāng)前div消失才一上來,所以我用了position:absolute,使每個(gè)div都飄在上面,但是遇到的問題是最外層的盒子不能隨內(nèi)層單個(gè)tab頁高度變化,所以我用了js動(dòng)態(tài)把tab頁高度賦值給外層div,目前還沒想到更好的方案。
最后我封裝了一下組件,使用時(shí)只需要傳入tab的標(biāo)題數(shù)組和多帶帶的tab頁即可使用
??:github地址可查看代碼github
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/99784.html
摘要:在元素被插入之前生效,在元素被插入之后的下一幀移除。定義進(jìn)入過渡生效時(shí)的狀態(tài)。這個(gè)類可以被用來定義進(jìn)入過渡的過程時(shí)間,延遲和曲線函數(shù)。我們用特性來擴(kuò)展,從而達(dá)到可以在這些受限制的元素中使用。 本文基于vue官方文檔,分別為:動(dòng)態(tài)組件 & 異步組件、插槽、進(jìn)入/離開 & 列表過渡 章節(jié)鏈接描述 要想實(shí)現(xiàn)tab動(dòng)畫,首先要了解vue中哪些元素/那些組件適合在那些條件下實(shí)現(xiàn)動(dòng)畫效果 條件渲...
摘要:在元素被插入之前生效,在元素被插入之后的下一幀移除。定義進(jìn)入過渡生效時(shí)的狀態(tài)。這個(gè)類可以被用來定義進(jìn)入過渡的過程時(shí)間,延遲和曲線函數(shù)。我們用特性來擴(kuò)展,從而達(dá)到可以在這些受限制的元素中使用。 本文基于vue官方文檔,分別為:動(dòng)態(tài)組件 & 異步組件、插槽、進(jìn)入/離開 & 列表過渡 章節(jié)鏈接描述 要想實(shí)現(xiàn)tab動(dòng)畫,首先要了解vue中哪些元素/那些組件適合在那些條件下實(shí)現(xiàn)動(dòng)畫效果 條件渲...
摘要:五六月份推薦集合查看最新的請點(diǎn)擊集前端最近很火的框架資源定時(shí)更新,歡迎一下。蘇幕遮燎沈香宋周邦彥燎沈香,消溽暑。鳥雀呼晴,侵曉窺檐語。葉上初陽乾宿雨,水面清圓,一一風(fēng)荷舉。家住吳門,久作長安旅。五月漁郎相憶否。小楫輕舟,夢入芙蓉浦。 五、六月份推薦集合 查看github最新的Vue weekly;請::點(diǎn)擊::集web前端最近很火的vue2框架資源;定時(shí)更新,歡迎 Star 一下。 蘇...
摘要:五六月份推薦集合查看最新的請點(diǎn)擊集前端最近很火的框架資源定時(shí)更新,歡迎一下。蘇幕遮燎沈香宋周邦彥燎沈香,消溽暑。鳥雀呼晴,侵曉窺檐語。葉上初陽乾宿雨,水面清圓,一一風(fēng)荷舉。家住吳門,久作長安旅。五月漁郎相憶否。小楫輕舟,夢入芙蓉浦。 五、六月份推薦集合 查看github最新的Vue weekly;請::點(diǎn)擊::集web前端最近很火的vue2框架資源;定時(shí)更新,歡迎 Star 一下。 蘇...
閱讀 1075·2021-09-29 09:35
閱讀 4621·2021-09-22 15:24
閱讀 1449·2021-07-25 21:37
閱讀 2178·2019-08-30 14:17
閱讀 965·2019-08-30 13:56
閱讀 2411·2019-08-29 17:07
閱讀 1251·2019-08-29 12:44
閱讀 2705·2019-08-26 18:26