vue中使用animate.css實現動畫效果


animate.css 是一個來自國外的 CSS3 動畫庫,它提供了抖動(shake)、閃爍(flash)、彈跳(bounce)、翻轉(flip)、旋轉(rotateIn/rotateOut)、淡入淡出(fadeIn/fadeOut)等多達 60 多種動畫效果,幾乎包含了所有常見的動畫效果。這些效果在大多數支持CSS3的瀏覽器上都能保持一致。簡單來說,我們使用它,只需要寫很少的代碼,就可以實現非常炫酷的動畫效果。

官網: https://animate.style/

1.安裝(在vscode終端中,使用npm安裝)

npm install animate.css


2.引入

在Test.vue中引入

import 'animate.css'

3.代碼實現

Test.vue文件如下:

<template>
  <div>
      <button @click="isShow = !isShow">顯示/隱藏</button>
       <!-- 
         appear:一上來就有動畫效果
         enter-active-class:設置進入的動畫
         leave-active-class:設置離開的動畫

        -->
       <!-- <transition 
        appear
        name="animate__animated animate__bounce"
        enter-active-class="animate__slideInUp"
        leave-active-class="animate__zoomOut"
        
      >
         <h2 v-show="isShow">animate.css!</h2>
      </transition> -->

      <transition-group 
        appear
        name="animate__animated animate__bounce"
        enter-active-class="animate__swing"    
        leave-active-class="animate__backOutUp"
        
      >
         <h2 v-show="!isShow" key="1">你好啊!</h2>    <!--一定要設置key-->
         <h2 v-show="isShow" key="2">animate.css!</h2>
      </transition-group> 
  </div>
</template>

<script>
 import 'animate.css'
 export default {
  name:'Test3',
  data(){
      return {
        isShow:true
      }
  }
}
</script>

<style scoped>
  h2{
      background-color: skyblue;
  }
</style>

在App.vue中注冊、使用Test.vue即可

<template>
  <div>
    <Test/>    
  </div>
</template>

<script>
import Test from './components/Test'
export default {
  name:'App',
  components:{Test}

}
</script>

<style>

</style>

注意:

  1. 要想使用animate.css, 需要把相關標簽用<transition>.....</transition> 進行包裹,只能包裹單個標簽。
  2. 使用<transition-group>.....</transition-group>可以包裹多個標簽,注意一定要加key 這個屬性值
  3. appear :表示一上來就有動畫效果。相當於::appear = 'true'
  4. 自定義修改

進入、離開的動畫可以從官網中選擇自己喜歡的,點擊上圖中紅線框標識進行復制,直接替換掉下圖中紅線框內容即可。

5、使用:duration設置動畫統一的運行時長,單位:ms

	<!--
		設置入場和離場的運行時長都是一樣的
		時間單位:ms
		<transition :duration="1000">...</transition>   
	-->   


<transition 
        appear
        name="animate__animated animate__bounce"
        enter-active-class="animate__slideInUp"
        leave-active-class="animate__zoomOut"
        :duration="1000"
        
      >
         <h2 v-show="isShow">animate.css!</h2>
</transition> 


		<!--
			分開設置入場`enter`和離場`leave`的運行時長。
			<transition :duration="{ enter: 500, leave: 800 }">...</transition>
		-->
<transition 
        appear
        name="animate__animated animate__bounce"
        enter-active-class="animate__slideInUp"
        leave-active-class="animate__zoomOut"
        :duration="{ enter:200, leave:1500 }"
        
      >
         <h2 v-show="isShow">animate.css!</h2>
</transition> 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM