vue內建元件——transition簡單原理圖文詳解

王文健發表於2018-07-11

基本概念

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>
複製程式碼

類名介紹

  1. v-enter:定義進入過渡的開始狀態。在元素被插入之前生效,在元素被插入之後的下一幀移除。

  2. v-enter-active:定義進入過渡生效時的狀態。在整個進入過渡的階段中應用,在元素被插入之前生效,在過渡/動畫完成之後移除。這個類可以被用來定義進入過渡的過程時間,延遲和曲線函式。

  3. v-enter-to: 2.1.8版及以上 定義進入過渡的結束狀態。在元素被插入之後下一幀生效 (與此同時 v-enter 被移除),在過渡/動畫完成之後移除。

  4. v-leave: 定義離開過渡的開始狀態。在離開過渡被觸發時立刻生效,下一幀被移除。

  5. v-leave-active:定義離開過渡生效時的狀態。在整個離開過渡的階段中應用,在離開過渡被觸發時立刻生效,在過渡/動畫完成之後移除。這個類可以被用來定義離開過渡的過程時間,延遲和曲線函式。

  6. v-leave-to: 2.1.8版及以上 定義離開過渡的結束狀態。在離開過渡被觸發之後下一幀生效 (與此同時 v-leave 被刪除),在過渡/動畫完成之後移除。

以上為vuejs官網介紹 下面我平時記載的筆記,結合圖文,更容易理解些

變化原理

vue動畫1.png

vue動畫原理1.png

動畫流程出現:

  • 開始前一幀: 點選出現動畫,元素由none變為block,動畫開始前一幀,插入opacity:0屬性 “1”,和監聽opacity屬性變化時間為3s “2”
  • 動畫第二幀:opacity:0,屬性 “1” 去除,引起**“2”**監聽執行時間變化
  • 動畫最後一幀: 動畫結束,去除所有

vue動畫原理2.png

動畫流程消失:

  • 開始前一幀: 點選消失動畫,元素由block變為none,動畫開始前一幀,只插入監聽opacity屬性變化時間為3s “4”
  • 動畫第二幀: 插入,“3” 屬性opacity:0引起 “2” 監聽執行事件變化
  • 動畫最後一幀: 動畫結束,去除所有

平時功能加個過渡動畫看著兩個圖足夠了
原創文章,轉載請註明原文連結blog.wwenj.com/index.php/a…

相關文章