W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
Nuxt.js 使用 Vue.js 的組件來實(shí)現(xiàn)路由切換時(shí)的過渡動(dòng)效。
如果想給某個(gè)頁(yè)面自定義過渡特效的話,只要在該頁(yè)面組件中配置 transition 字段即可:
export default {
// 可以是字符
transition: ''
// 或?qū)ο? transition: {}
// 或函數(shù)
transition (to, from) {}
}
如果 transition 屬性的值類型是字符類型, 相當(dāng)于設(shè)置了動(dòng)效配置對(duì)象的 name 屬性:transition.name。
export default {
transition: 'test'
}
Nuxt.js 將使用上面的配置來設(shè)置 Vue.js transition 組件,如下:
<transition name="test">
如果 transition 屬性的值類型是對(duì)象類型:
export default {
transition: {
name: 'test',
mode: 'out-in'
}
}
Nuxt.js 將使用上面的配置來設(shè)置 Vue.js transition 組件,如下:
<transition name="test" mode="out-in">
transition 允許配置的字段介紹:
屬性字段 | 類型 | 默認(rèn)值 | 描述 |
---|---|---|---|
name | String | "page" | 所有路由過渡都會(huì)用到的過渡名稱。 |
mode | String | "out-in" | 所有路由都用到的過渡模式,見 Vue.js transition 使用文檔。 |
css | Boolean | true | 是否給頁(yè)面組件根元素添加 CSS 過渡類名。如果值為 false ,路由過渡時(shí)將只會(huì)觸發(fā)頁(yè)面組件注冊(cè)的 Javascript 鉤子事件方法(不會(huì)設(shè)置 css 類名)。 |
duration | Integer | n/a | 在頁(yè)面切換的持續(xù)時(shí)間(以毫秒為單位)詳情請(qǐng)參考 Vue.js documentation |
type | String | n/a | 指定過濾動(dòng)效事件的類型,用于判斷過渡結(jié)束的時(shí)間點(diǎn)。值可以是 "transition" 或 "animation"。 默認(rèn)情況下, Nuxt.js 會(huì)自動(dòng)偵測(cè)動(dòng)效事件的類型。 |
enterClass | String | n/a | 目標(biāo)路由動(dòng)效開始時(shí)的類名。 詳情請(qǐng)參考 Vue.js transition 使用文檔 。 |
enterToClass | String | n/a | 目標(biāo)路由動(dòng)效結(jié)束時(shí)的類名。 詳情請(qǐng)參考 Vue.js transition 使用文檔 。 |
enterActiveClass | String | n/a | 目標(biāo)路由過渡過程中的類名。詳情請(qǐng)參考 Vue.js transition 使用文檔 。 |
leaveClass | String | n/a | 當(dāng)前路由動(dòng)效開始時(shí)的類名。 詳情請(qǐng)參考 Vue.js transition 使用文檔 。 |
leaveToClass | String | n/a | 當(dāng)前路由動(dòng)效結(jié)束時(shí)的類名。 詳情請(qǐng)參考 Vue.js transition 使用文檔 。 |
leaveActiveClass | String | n/a | 當(dāng)前路由動(dòng)效過程中的類名。詳情請(qǐng)參考 Vue.js transition 使用文檔 。 |
你也可以在頁(yè)面組件事件里面使用 Javascript 來控制過渡動(dòng)效,可以稱之為 JavaScript 鉤子方法:
注意:如果使用純 Javascript 控制路由過渡動(dòng)效,建議將 transition 組件的 css 屬性的值設(shè)置為 false。這樣可以避免 Vue 做 CSS 動(dòng)效相關(guān)的偵測(cè)邏輯,同時(shí)防止 CSS 影響到過渡的動(dòng)效。
如果 transition 屬性的值類型時(shí)函數(shù):
export default {
transition (to, from) {
if (!from) { return 'slide-left' }
return +to.query.page < +from.query.page ? 'slide-right' : 'slide-left'
}
}
這時(shí)頁(yè)面導(dǎo)航的動(dòng)效如下:
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: