最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue之transition動(dòng)畫組件使用解讀

 更新時(shí)間:2026年01月22日 10:04:32   作者:wlqMore  
Vue.js中transition組件的基本用法和語法,包括常見的6個(gè)class切換,以及與動(dòng)畫插件(如animate.css、Velocity.js)的組合使用方法,文章還提到在處理多個(gè)元素、組件的過渡和列表的進(jìn)入/離開過渡時(shí)需要注意的細(xì)節(jié)

前言

往往一些簡單動(dòng)畫會(huì)在頁面視覺體驗(yàn)起到畫龍點(diǎn)睛的作用

了解trasition組件的基本使用、語法。

它的實(shí)現(xiàn)主要是通過css中的**transitionanimation**來實(shí)現(xiàn)的

一、transition的組件用法

在業(yè)務(wù)開發(fā)過程中,最常見的還是transition組件的用法

<transition name="slide-fade">
  <p v-if="show"> hello world </p>
</transition>
/* 可以設(shè)置不同的進(jìn)入和離開動(dòng)畫 */
/* 設(shè)置持續(xù)時(shí)間和動(dòng)畫函數(shù) */
.slide-fade-enter-active {
  transition: all .3s ease;
}
.slide-fade-leave-active {
  transition: all .8s cubic-bezier(1.0, 0.5, 0.8, 1.0);
}
.slide-fade-enter, .slide-fade-leave-to
  transform: translateX(10px);
  opacity: 0;
}

除此之外,在進(jìn)入/離開的過渡中,會(huì)有 6 個(gè) class 切換;

v-enter 、v-enter-active 、v-enter-to 、v-leave 、v-leave-active 、v-leave-to。

二、與其他動(dòng)畫插件的組合使用

1. 配合animation實(shí)現(xiàn)動(dòng)畫+@keyframes

代碼如下(示例):

<div id="example-2">
  <button @click="show = !show">Toggle show</button>
  <transition name="bounce">
    <p v-if="show">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris facilisis enim libero, at lacinia diam fermentum id. Pellentesque habitant morbi tristique senectus et netus.</p>
  </transition>
</div>
.bounce-enter-active {
  animation: bounce-in .5s;
}
.bounce-leave-active {
  animation: bounce-in .5s reverse;
}
@keyframes bounce-in {
  0% {
    transform: scale(0);
  }
  50% {
    transform: scale(1.5);
  }
  100% {
    transform: scale(1);
  }
}

2. animate.css庫

先引入animate.css庫

yarn add animate.css

用法參照animate.css中文文檔

https://daneden.github.io/animate.css/

可以設(shè)置不同的單詞出現(xiàn)不同的動(dòng)畫效果

3. JavaScript鉤子函數(shù)結(jié)合Velocity.js

使用Velocity.js之前要先引用

  methods: {
    beforeEnter: function (el) {
      el.style.opacity = 0
      el.style.transformOrigin = 'left'
    },
    enter: function (el, done) {
      Velocity(el, { opacity: 1, fontSize: '1.4em' }, { duration: 300 })
      Velocity(el, { fontSize: '1em' }, { complete: done })
    },
    leave: function (el, done) {
      Velocity(el, { translateX: '15px', rotateZ: '50deg' }, { duration: 600 })
      Velocity(el, { rotateZ: '100deg' }, { loop: 2 })
      Velocity(el, {
        rotateZ: '45deg',
        translateY: '30px',
        translateX: '30px',
        opacity: 0
      }, { complete: done })
    }
  }

4. 多個(gè)元素、組件的過渡

<div id="example-2">
  <transition name="fade" mode="out-in">
    <button v-if="isEditing" key="save"
            @click="isEditing=!isEditing">
      Save
    </button>
    <button v-else key="edit"
             @click="isEditing=!isEditing">
      Edit
    </button>
  </transition>
</div>
.fade-enter-active, .fade-leave-active {
  transition: all 1s;
}
.fade-enter {
  opacity: 0;
  transform: translateX(50px);
}
.fade-leave-to {
  opacity: 0;
  transform: translateX(-50px);
}

#example-2{
  position: relative;
  padding: 100px;
}
#example-2 button {
  position: absolute;
}

5. 列表的進(jìn)入/離開過渡

  <transition-group name="list" tag="p">
    <span v-for="item in items" v-bind:key="item" class="list-item">
      {{ item }}
    </span>
  </transition-group>

注意: 在遍歷循環(huán)的過程中,必須添加key值,否則會(huì)導(dǎo)致動(dòng)畫失效。

總結(jié)

vue的transition組件結(jié)合animation動(dòng)畫,基本上可以滿足日常的開發(fā)需求。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳解如何在Vue項(xiàng)目中導(dǎo)出Excel

    詳解如何在Vue項(xiàng)目中導(dǎo)出Excel

    這篇文章主要介紹了如何在Vue項(xiàng)目中導(dǎo)出Excel,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • vue3緩存頁面keep-alive及路由統(tǒng)一處理詳解

    vue3緩存頁面keep-alive及路由統(tǒng)一處理詳解

    當(dāng)我們不想每次跳轉(zhuǎn)路由都會(huì)重新加載頁面時(shí)(重新加載頁面很耗時(shí)),就可以考慮使用keep-alive緩存頁面了,這篇文章主要給大家介紹了關(guān)于vue3緩存頁面keep-alive及路由統(tǒng)一處理的相關(guān)資料,需要的朋友可以參考下
    2021-10-10
  • vue3?vscode插件volar配置教程

    vue3?vscode插件volar配置教程

    這篇文章主要介紹了vue3?vscode插件volar配置,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-07-07
  • Vue項(xiàng)目中使用setTimeout存在的潛在問題及解決

    Vue項(xiàng)目中使用setTimeout存在的潛在問題及解決

    這篇文章主要介紹了Vue項(xiàng)目中使用setTimeout存在的潛在問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • vue中英文切換實(shí)例代碼

    vue中英文切換實(shí)例代碼

    在本篇文章里小編給大家整理了關(guān)于vue中英文切換實(shí)例代碼,需要的朋友們學(xué)習(xí)參考下。
    2020-01-01
  • VUE實(shí)時(shí)監(jiān)聽元素距離頂部高度的操作

    VUE實(shí)時(shí)監(jiān)聽元素距離頂部高度的操作

    這篇文章主要介紹了VUE實(shí)時(shí)監(jiān)聽元素距離頂部高度的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • 利用Vue3 (一)創(chuàng)建Vue CLI 項(xiàng)目

    利用Vue3 (一)創(chuàng)建Vue CLI 項(xiàng)目

    這篇文章主要介紹利用Vue3 創(chuàng)建Vue CLI 項(xiàng)目,下面文章內(nèi)容附有官方文檔鏈接,安裝過程,需要的可以參考一下
    2021-10-10
  • vue項(xiàng)目使用websocket技術(shù)解讀

    vue項(xiàng)目使用websocket技術(shù)解讀

    文章介紹了WebSocket的出現(xiàn)背景、特點(diǎn)以及在Vue項(xiàng)目中的應(yīng)用方法,WebSocket是一種在單個(gè)TCP連接上進(jìn)行全雙工通信的協(xié)議,適合實(shí)時(shí)通信場景,在Vue項(xiàng)目中使用WebSocket時(shí),需要注意瀏覽器兼容性、連接與斷開時(shí)機(jī)以及后端接口的配置
    2025-12-12
  • vue2使用el-tag實(shí)現(xiàn)自定義菜單導(dǎo)航標(biāo)簽

    vue2使用el-tag實(shí)現(xiàn)自定義菜單導(dǎo)航標(biāo)簽

    這篇文章主要為大家詳細(xì)介紹了vue2如何使用el-tag實(shí)現(xiàn)自定義菜單導(dǎo)航標(biāo)簽,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-12-12
  • Vue?全部生命周期組件梳理整理

    Vue?全部生命周期組件梳理整理

    這篇文章主要介紹了Vue?全部生命周期組件梳理整理,在創(chuàng)建組件之前使用;在實(shí)例初始化之后,進(jìn)行數(shù)據(jù)偵聽和事件,偵聽器的配置之前同步調(diào)用
    2022-06-06

最新評(píng)論

桂阳县| 德格县| 宜兰县| 北碚区| 凌源市| 平昌县| 闵行区| 合江县| 平昌县| 凭祥市| 遂川县| 鹤壁市| 青阳县| 土默特左旗| 新巴尔虎左旗| 乌拉特后旗| 施秉县| 紫云| 汾西县| 宁陵县| 罗定市| 郸城县| 民和| 五河县| 岫岩| 保山市| 芜湖市| 都江堰市| 广东省| 高邑县| 荆州市| 工布江达县| 五大连池市| 泾川县| 司法| 阜平县| 林甸县| 色达县| 沐川县| 开原市| 神农架林区|