成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

vue中的過渡動畫

aaron / 1640人閱讀

摘要:前言記一次組件中使用和設(shè)置過渡動畫總結(jié)來說可分為分為版鉤子操作類名版鉤子操作行內(nèi)樣式版模板結(jié)構(gòu)單個元素自定義名字列表元素注意的直接子元素是渲染出來的版為組件中的屬性出現(xiàn)的過程初始態(tài)中間態(tài)終止態(tài)消失的過程以

前言

記一次vue 組件中使用 transition 和 transition-group 設(shè)置過渡動畫,總結(jié)來說可分為分為 name 版, js 鉤子操作類名版, js 鉤子操作行內(nèi)樣式版...

template模板結(jié)構(gòu)
  // 單個元素
    
      

hello

// 列表元素: 注意group的直接子元素是v-for渲染出來的
name 版,name 為組件中的屬性
出現(xiàn)的過程: name-enter(初始態(tài)) => name-enter-active(中間態(tài)) => name-enter-to(終止態(tài))
消失的過程: name-leave => name-leave-active => name-leave-to

以進場過渡動畫為例子

我們可以分別設(shè)置 enter 階段 和 enter-to 階段的動畫
  1.設(shè)置進入時需要過渡的屬性
  .name-enter
  {
    opacity: 0;
    transform: translateY(30px)
  }
  2.然后在 name-enter-active中設(shè)置過渡時間
  .name-enter-active {
    transition: all .3s;
  }
  3.最后在 name-enter-to 中寫上終止態(tài)屬性
    其實終止態(tài)的opacity: 1;transform: none; 是默認的,可以不用寫
  .name-enter-to {
    opacity: 1;
    transform: translateY(0);
  }
  如果要給列表中的元素設(shè)置交錯的效果, 元素不多的話可以添加 delay 屬性
  .name-enter-active:nth-child(3n+1) {
    transition-delay: 0s;
  }
  .name-enter-active:nth-child(3n+2) {
    transition-delay: .1s;
  }
  .name-enter-active:nth-child(3n+3) {
    transition-delay: .2s;
  }
  離場動畫同理...
js 鉤子實現(xiàn)過渡動畫: 通過操作類名; 就是 name 版的 js 實現(xiàn)
// 例如實現(xiàn)上述列表依次顯示
  
// methods: { // 事先定義上述類名 // 在beforeEnter enter afterEnter 鉤子中手動操作上述類名 // 初始態(tài) beforeEnter(dom) { dom.classList.add("list-enter", "list-enter-active"); }, // 中間態(tài) enter(dom,done) { // 通過 setTimeout + dataset 實現(xiàn)過渡 let delay = dom.dataset.delay; setTimeout(function () { dom.classList.remove("list-enter"); dom.classList.add("list-enter-to"); //監(jiān)聽 transitionend 事件 var transitionend = window.ontransitionend ? "transitionend" : "webkitTransitionEnd"; dom.addEventListener(transitionend, function onEnd() { // 移除事件 dom.removeEventListener(transitionend, onEnd); //調(diào)用done(),表示動畫已完成 done() }); }, delay) }, // 終止態(tài) afterEnter(dom) { dom.classList.remove("list-enter-to", "list-enter-active"); } }
js 鉤子過渡動畫: 通過操作行內(nèi)屬性, 自定義動畫
   
// 對應(yīng)的操作方法; 添加自定義的 dataset,給dom設(shè)置css樣式;根據(jù)需求添加 methods: { // 初始態(tài) beforeEnter(dom) { let { x = 0, y = 0, opacity = 0 } = dom.dataset; dom.style.cssText = `transition: .3s;opacity: ${opacity};transform: translateX(${x}) translateY(${y});`; }, // 中間態(tài) enter(dom,done) { let delay = dom.dataset.delay; setTimeout(function () { dom.style.cssText = `transition: .3s;opacity: 1;transform: translateX(0) translateY(0);`; //監(jiān)聽 transitionend 事件 var transitionend = window.ontransitionend ? "transitionend" : "webkitTransitionEnd"; dom.addEventListener(transitionend, function onEnd() { dom.removeEventListener(transitionend, onEnd); done(); }); }, delay) }, // 終止態(tài) afterEnter(dom) { dom.style.cssText = ""; } }

這里記錄一下監(jiān)聽css3的animation動畫和transition事件:

webkit-animation動畫有三個事件:
    開始事件: webkitAnimationStart
    結(jié)束事件: webkitAnimationEnd
    重復(fù)運動事件: webkitAnimationIteration

css3的過渡屬性transition: 一個事件
    過渡結(jié)束: webkitTransitionEnd

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/105447.html

相關(guān)文章

  • Vue.js進入/離開&列表過度動畫。

    摘要:包括以下工具在過渡和動畫中自動應(yīng)用可以配合第三方動畫庫,如在過渡鉤子函數(shù)中使用直接操作可以配合使用第三方動畫庫,如在這里,我們只會講到進入離開和列表的過渡。不僅可以進入和離開動畫,還可以改變定位。 概述 Vue在插入、更新或則移除DOM時,提供多種不同方式的應(yīng)用過渡效果。包括以下工具: *在CSS過渡和動畫中自動應(yīng)用class *可以配合第三方CSS動畫庫,如Animate.css *...

    thekingisalwaysluc 評論0 收藏0
  • 過渡(1):元素/組件過渡動畫

    摘要:在離開進入過渡時,受影響的其他元素應(yīng)該使用移動過渡為期定義移動過渡。過渡和動畫自定義過渡的類名在鉤子中使用兩個元素之間的過渡今日頭條面試分享面試題記錄記得點贊分享哦讓更多的人看到這里使用了一個動畫庫和函數(shù)式組件。 自定義過渡的類名 另一種情況和Vue過渡執(zhí)行過程見初始渲染 new Vue({ el: #app-2, data: { taxiCalled:...

    ls0609 評論0 收藏0
  • 過渡(1):元素/組件過渡動畫

    摘要:在離開進入過渡時,受影響的其他元素應(yīng)該使用移動過渡為期定義移動過渡。過渡和動畫自定義過渡的類名在鉤子中使用兩個元素之間的過渡今日頭條面試分享面試題記錄記得點贊分享哦讓更多的人看到這里使用了一個動畫庫和函數(shù)式組件。 自定義過渡的類名 另一種情況和Vue過渡執(zhí)行過程見初始渲染 new Vue({ el: #app-2, data: { taxiCalled:...

    GraphQuery 評論0 收藏0
  • vue.js起步式(二)

    摘要:當需要和第三方的動畫庫,比如配合時會非常有用顯式聲明過渡類型新增需要給過渡元素添加事件偵聽器來偵聽過渡何時結(jié)束。在下例中我們使用注冊一個自定義的過渡元素已被插入在動畫結(jié)束后調(diào)用與相同然后用特性中漸近過渡與一起用時可以創(chuàng)建漸近過渡。 8.方法與事件處理器 方法處理器可以用 v-on 指令監(jiān)聽 DOM 事件: Greet 我們綁定了一個單擊事件處理器到一個方法 greet。下面在...

    BearyChat 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<