基本概念
Vue 在插入、更新或者移除 DOM 時,提供多種不同方式的應用過渡效果
- 在 CSS 過渡和動畫中自動應用 class
- 可以配合使用第三方 CSS 動畫庫,如 Animate.css
- 在過渡鉤子函式中使用 JavaScript 直接操作 DOM
- 可以配合使用第三方 JavaScript 動畫庫,如 Velocity.js
簡單用法
- 用
v-if/v-show
控制顯示隱藏,使用transition 元件控制其變化過程 - 一個頁面子元件router-view的消失隱藏,使用transition 元件控制其變化過程
<template>
// 子元件
<transition name="fade1">
<router-view></router-view>
</transition>
// if/show控制
<transition name="fade2">
<div v-show="isTage"></div>
</transition>
</template>
複製程式碼
類名介紹
v-enter
:定義進入過渡的開始狀態。在元素被插入之前生效,在元素被插入之後的下一幀移除。
v-enter-active
:定義進入過渡生效時的狀態。在整個進入過渡的階段中應用,在元素被插入之前生效,在過渡/動畫完成之後移除。這個類可以被用來定義進入過渡的過程時間,延遲和曲線函式。
v-enter-to
: 2.1.8版及以上 定義進入過渡的結束狀態。在元素被插入之後下一幀生效 (與此同時v-enter
被移除),在過渡/動畫完成之後移除。
v-leave
: 定義離開過渡的開始狀態。在離開過渡被觸發時立刻生效,下一幀被移除。
v-leave-active
:定義離開過渡生效時的狀態。在整個離開過渡的階段中應用,在離開過渡被觸發時立刻生效,在過渡/動畫完成之後移除。這個類可以被用來定義離開過渡的過程時間,延遲和曲線函式。
v-leave-to
: 2.1.8版及以上 定義離開過渡的結束狀態。在離開過渡被觸發之後下一幀生效 (與此同時v-leave
被刪除),在過渡/動畫完成之後移除。
以上為vuejs官網介紹 下面我平時記載的筆記,結合圖文,更容易理解些
變化原理
動畫流程出現:
- 開始前一幀: 點選出現動畫,元素由none變為block,動畫開始前一幀,插入
opacity:0
屬性 “1”,和監聽opacity屬性變化時間為3s “2” - 動畫第二幀:
opacity:0
,屬性 “1” 去除,引起**“2”**監聽執行時間變化 - 動畫最後一幀: 動畫結束,去除所有
動畫流程消失:
- 開始前一幀: 點選消失動畫,元素由block變為none,動畫開始前一幀,只插入監聽opacity屬性變化時間為3s “4”
- 動畫第二幀: 插入,“3” 屬性opacity:0引起 “2” 監聽執行事件變化
- 動畫最後一幀: 動畫結束,去除所有
平時功能加個過渡動畫看著兩個圖足夠了
原創文章,轉載請註明原文連結blog.wwenj.com/index.php/a…