偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

通過示例了解Vue過渡和動畫

開發(fā) 項目管理
文本主要介紹<transition> Vue 元素,使用該元素創(chuàng)建一些Vue動畫,并了解將其添加到項目中的基本知識。

[[400810]]

 Vue過渡和動畫讓我們網(wǎng)站更具現(xiàn)代感并為網(wǎng)站訪問者提供更好的用戶體驗的好方法。幸運的是,對于開發(fā)人員而言,Vue動畫只需幾分鐘即可完成設置。

文本主要介紹 <transition>Vue 元素,使用該元素創(chuàng)建一些Vue動畫,并了解將其添加到項目中的基本知識。

首先,我們來看一下 Vue Transitiont 怎么處理有條件的渲染內容。

圖片

然后,創(chuàng)建自己的CSS動畫樣式。

圖片

最后,我們將了解如何將第三方CSS庫與Vue動畫一起使用。

圖片

理解 Vue 過渡

雖然大多數(shù)人認為過渡只是裝飾,但精心設計的過渡可以:

  • 抓住并引導用戶的注意力
  • 強調重要信息
  • 引導用戶瀏覽頁面
  • 幫助建立更專業(yè)的品牌形象

所有這些要點都將有助于改善我們網(wǎng)站的用戶體驗,提高轉化率和用戶留存率,這是雙贏呀。

添加Vue過渡到我們的項目

為了適應多數(shù)的開發(fā)人員,VueJS 提供了幾種實現(xiàn)過渡的方法:

  • css 或 動畫 過渡樣式
  • JS Hook 對 DOM 進行編輯
  • 集成第三方CSS

這些方法的難度取決于你現(xiàn)有的知識。

<transition>元素是啥?

transition 元素是幫助我們向元素添加過渡功能的包裝器。它提供了不同的鉤子,并向不斷變化的元素添加了類,這樣我們就可以在轉換的不同階段對它們進行樣式化。

  • enter-from-class
  • enter-active-class
  • enter-to-class
  • leave-from-class
  • leave-active-class
  • leave-to-class

將自定義庫添加到代碼中時,這特別有用,稍后,我們會做說明。

  1. <transition  
  2.   enter-active-class="animated fadeIn zoomIn"  
  3.   leave-active-class="animated fadeOut zoomOut" 
  4. ... 
  5. </transition> 

另外,transition元素還會發(fā)出JS鉤子函數(shù),因此我們可以捕獲它們并使用 JS 來執(zhí)行動畫??捎玫你^子有:

  • before-enter / before-leave
  • enter / leave
  • after-enter / after-leave
  • enter-cancelled / leave-cancelled
  1. <transition   @before-enter='beforeEnter'
  2.     <!-- ... --> 
  3. </transition> 

然后,我們可以在 JS 中處理它們。

  1. beforeEnter(el, done) { 
  2.    done() 

Vue Transition 高級用法

上面介紹的只是一些基礎,在項目中,會遇到比較復雜的場景,這要怎么做呢?

讓組件在加載下過渡

這個很簡單就能實現(xiàn)了, 只需將appear 屬性添加到transition 元素中,如下所示:

  1. <transition name="fade" appear> 
  2. ... 
  3. </transition> 

在多個元素之間過渡

假設有兩個這樣交替的div。

  1. <transition name="fade" appear> 
  2.   <div v-if="visible"
  3.     Option A 
  4.   </div> 
  5.   <div v-else
  6.     Option B 
  7.   </div> 
  8. </transition> 

 我們要做的就是將它們包在transition中,這樣過渡樣式將同時適用于兩者。

要使代碼按我們希望的方式起作用,需要注意以下幾點:

絕對定位元素

當Vue在兩個元素之間過渡時,有時會同時顯示兩個元素并進行進去/離開的過渡。如果要獲得平滑的效果,則可能需要將它們絕對定位在彼此的頂部。

否則,將元素添加到DOM中或從DOM中刪除時,這些元素可能只是在各處跳躍。

2.如果元素是一樣的,則必須向該組件添加一個key屬性

如果元素是一樣的,Vue 會嘗試優(yōu)化內容,僅替換元素的內容。根據(jù)文檔,如果要在多個元素之間進行過渡,最好始終添加 key。

更改過渡時間

Vue 可以檢測到過渡/動畫何時結束,但是如果我們想設置確切的持續(xù)時間,可以通過 duration屬性設置 。

我們可以為enter和leave過渡都傳遞一個值,也可以傳有兩個值的對象。

  1. <transition :duration="500">...</transition>  
  2. ... 
  3. <transition :duration="{ enter: 1000, leave: 200 }">...</transition> 

動態(tài)組件之間的轉換

我們要做的就是將動態(tài)組件包裝在transition元素中。

  1. <transition name="fade" appear> 
  2.      <component :is='componentType' /> 
  3.  </transition>  

創(chuàng)建一個可重用的 transition 組件

在開發(fā)過程中,嘗試設計可重用組件是一個很好的習慣。

封裝一個可重用的 transition 很簡單,在 transition 里放個 slot,如下所示:

  1. <template> 
  2.   <transition name="fade" appear> 
  3.     <slot></slot> 
  4.   </transition> 
  5. </template>  

現(xiàn)在,我們就不必擔心將過渡樣式,名稱和所有內容添加到每個組件中,而只需使用此組件即可。

目前為止,我們已經了解了<transition> 元素,現(xiàn)在就可以使用它來制作動畫。

建立第一個動畫

  1. <template> 
  2.   <div class='main-content'
  3.     <transition name='rotate'
  4.       <img  
  5.         v-if='show'  
  6.         src='../img/logo.png' 
  7.       >  
  8.     </transition> 
  9.   </div> 
  10. </template> 
  11.  
  12. <script> 
  13. export default { 
  14.   data () { 
  15.     return { 
  16.       show: true 
  17.     } 
  18.   } 
  19. </script> 

接下來,我們添加一個按鈕,通過切換變量的值來切換元素的顯示。

  1. <button @click='show = !show'> Toggle </button> 

設置了元素的條件渲染后,我們使用兩個類來設置動畫的樣式:rotate-enter-active和rotate-leave-active,因為我們將過渡命名為rotate。

一個技巧是讓離開和進入使用相同動畫,只是它們的方向相反。

  1. @keyframes rotate { 
  2.     0% { opacity: 0; transform: scale(0) rotate(-180deg); } 
  3.     100% { opacity: 1; transform: scale(1) rotate(0deg); } 
  4.  
  5. .rotate-enter-active { 
  6.     animation: rotate 0.2s; 
  7.  
  8. .rotate-leave-active { 
  9.     animation: rotate 0.2s reverse; 

現(xiàn)在,切換我們的組件時,我們應該看到類似這樣的內容。

圖片

使用第三方庫

假設我們不想自己編寫所有的CSS動畫。有很多很棒的CSS動畫庫,可以很容易地將它們合并到VueJS動畫中。

在第一個示例中,我們只使用了<transition> 元素生成的默認類名,但是我們可以做的就是將這些值覆蓋到我們想要的任何類中,在這種情況下,它將是CSS庫中的類名。

對于我們的示例,我們使用的[Animate.css](https://daneden.github.io/animate.css/) 這個動畫庫,我們只需將CDN鏈接添加到我們的index.html文件即可。

  1. // index.html 
  2. <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/3.7.2/animate.min.css"

現(xiàn)在,在我們的 <transition> 元素中,我們可以使用enter-active-class和leave-active-class屬性將過渡連接到Animate.js。

  1. <transition  
  2.   enter-active-class="animated fadeIn zoomIn"  
  3.   leave-active-class="animated fadeOut zoomOut" 
  4. ... 
  5. </transition> 

超級簡單,運行效果如下:

圖片

~完,我是前端小智,去板磚咯,我們下期見!

作者:Matt Maribojoc 譯者:前端小智 來源:stackabuse原文:https://learne.co/2020/02/vuejs-aniions-for-beginners/

 

責任編輯:姜華 來源: 大遷世界
相關推薦

2025-05-30 03:20:00

2020-10-22 08:50:04

Cascading S

2023-03-30 08:10:31

Vue.js轉換和微交互

2023-08-24 08:37:50

VueCSS

2011-07-29 14:55:25

iPhone開發(fā) 動畫過渡

2015-08-03 11:42:27

Swift漢堡式過度動畫

2024-09-23 09:20:02

calc-sizeCSS前端

2023-02-06 09:31:17

CSSJS 動態(tài)

2023-10-29 09:13:56

GolangGo

2021-07-15 07:23:25

React動畫頁面

2024-04-24 11:05:03

MapReduce編程大數(shù)據(jù)

2022-08-22 20:10:59

自定義計數(shù)器CSS

2021-04-16 05:54:05

CSS 文字動畫技巧

2023-05-04 07:20:56

微軟Windows 11

2024-03-28 09:11:24

CSS3TransitionCSS屬性

2022-03-21 09:52:44

LinuxSystemd日志

2012-09-24 11:45:28

IBMdw

2020-06-02 14:00:53

Vue.js組件Web開發(fā)

2022-04-28 09:22:46

Vue灰度發(fā)布代碼

2021-08-05 17:59:45

Vue 3.0前端代碼
點贊
收藏

51CTO技術棧公眾號