亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

vue 組件中使用 transition 和 transition-group實現過渡動畫

2019-11-19 11:12:46
字體:
來源:轉載
供稿:網友

前言

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

template模板結構

// 單個元素  <transition name="自定義名字">   <p v-if="show">hello</p>  </transition> // 列表元素: 注意group的直接子元素是v-for渲染出來的  <ul class="list">   <transition-group name="list">    <li v-for="(item, index) in gameList" :key="item.id">     <app-horizontal :itemData="item"></app-horizontal>    </li>   </transition-group>  </ul>

name 版,name 為組件中的屬性

出現的過程: name-enter(初始態) => name-enter-active(中間態) => name-enter-to(終止態)
消失的過程: name-leave => name-leave-active => name-leave-to
以進場過渡動畫為例子

我們可以分別設置 enter 階段 和 enter-to 階段的動畫

  1.設置進入時需要過渡的屬性

 .name-enter {  opacity: 0;  transform: translateY(30px) }

  2.然后在 name-enter-active中設置過渡時間

 .name-enter-active {  transition: all .3s; }

  3.最后在 name-enter-to 中寫上終止態屬性

    其實終止態的opacity: 1;transform: none; 是默認的,可以不用寫

 .name-enter-to {  opacity: 1;  transform: translateY(0); }

  如果要給列表中的元素設置交錯的效果, 元素不多的話可以添加 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 鉤子實現過渡動畫: 通過操作類名; 就是 name 版的 js 實現

// 例如實現上述列表依次顯示 <ul class="list">  <transition-group   v-bind:css="false"   v-on:before-enter="beforeEnter"   v-on:enter="enter"   v-on:after-enter="afterEnter">   <li v-for="(item, index) in gameList"     :key="item.id"     :data-delay="index*100"    >     <app-horizontal :itemData="item"></app-horizontal>   </li>  </transition-group> </ul>  //  methods: {  // 事先定義上述類名  // 在beforeEnter enter afterEnter 鉤子中手動操作上述類名    // 初始態  beforeEnter(dom) {   dom.classList.add('list-enter', 'list-enter-active');  },  // 中間態  enter(dom,done) {   // 通過 setTimeout + dataset 實現過渡   let delay = dom.dataset.delay;   setTimeout(function () {    dom.classList.remove('list-enter');    dom.classList.add('list-enter-to');    //監聽 transitionend 事件    var transitionend = window.ontransitionend ? "transitionend" : "webkitTransitionEnd";    dom.addEventListener(transitionend, function onEnd() {     // 移除事件     dom.removeEventListener(transitionend, onEnd);     //調用done(),表示動畫已完成     done()    });   }, delay)  },  // 終止態  afterEnter(dom) {   dom.classList.remove('list-enter-to', 'list-enter-active');  } }

js 鉤子過渡動畫: 通過操作行內屬性, 自定義動畫

<ul class="list">  <transition-group   v-bind:css="false"   v-on:before-enter="beforeEnter"   v-on:enter="enter"   v-on:after-enter="afterEnter">   <li v-for="(item, index) in gameList"     :key="item.id"     :data-delay="index*100"    data-y = "100%"    >     <app-horizontal :itemData="item"></app-horizontal>   </li>  </transition-group> </ul>  // 對應的操作方法; 添加自定義的 dataset,給dom設置css樣式;根據需求添加  methods: {   // 初始態  beforeEnter(dom) {   let { x = 0, y = 0, opacity = 0 } = dom.dataset;   dom.style.cssText = `transition: .3s;opacity: ${opacity};transform: translateX(${x}) translateY(${y});`;  },  // 中間態  enter(dom,done) {   let delay = dom.dataset.delay;   setTimeout(function () {    dom.style.cssText = `transition: .3s;opacity: 1;transform: translateX(0) translateY(0);`;    //監聽 transitionend 事件    var transitionend = window.ontransitionend ? "transitionend" : "webkitTransitionEnd";    dom.addEventListener(transitionend, function onEnd() {       dom.removeEventListener(transitionend, onEnd);       done();     });   }, delay)  },  // 終止態  afterEnter(dom) {   dom.style.cssText = "";  } }

這里記錄一下監聽css3的animation動畫和transition事件:

webkit-animation動畫有三個事件:  開始事件: webkitAnimationStart  結束事件: webkitAnimationEnd  重復運動事件: webkitAnimationIterationcss3的過渡屬性transition: 一個事件  過渡結束: webkitTransitionEnd

總結

以上所述是小編給大家介紹的vue 組件中使用 transition 和 transition-group實現過渡動畫 ,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品久久久久久久久久小说| 欧美激情xxxx性bbbb| 久久99国产精品自在自在app| 播播国产欧美激情| 欧美极品少妇xxxxⅹ喷水| 亚洲男人天堂古典| 国产综合久久久久久| 国产精品香蕉国产| 北条麻妃在线一区二区| 欧美国产日产韩国视频| 久久久视频在线| 国产精品成人一区二区| 韩国视频理论视频久久| 亚洲欧美中文在线视频| 亚洲一区二区国产| 国产精品99久久久久久www| 国产一区二中文字幕在线看| 亚洲在线一区二区| 黄色一区二区在线观看| 日本不卡免费高清视频| 久久手机精品视频| 国产欧美日韩中文字幕| 精品高清一区二区三区| 一区二区三区精品99久久| 神马久久桃色视频| 国产精品女人网站| 夜色77av精品影院| 久久av在线看| 欧美激情中文字幕在线| 中文字幕国产精品久久| 亚洲欧美在线一区二区| 亚洲精品美女久久久久| 在线看欧美日韩| 欧美黑人又粗大| 国产欧美一区二区三区视频| 91精品国产综合久久久久久久久| 亚洲欧美一区二区精品久久久| 欧美福利视频在线观看| 理论片在线不卡免费观看| 午夜欧美不卡精品aaaaa| 亚洲午夜未删减在线观看| 久久久国产在线视频| 欧美日本高清一区| 4k岛国日韩精品**专区| 欧美大成色www永久网站婷| 91精品国产99久久久久久| 国产精品久久二区| 国模精品系列视频| 日韩精品视频免费专区在线播放| 久久久久久91香蕉国产| 尤物精品国产第一福利三区| 久久国产色av| 在线观看精品自拍私拍| 久久成年人免费电影| 亚洲最大av网站| 日韩理论片久久| 九九久久久久久久久激情| 91av在线免费观看视频| 在线观看日韩专区| 日韩高清中文字幕| 亚洲自拍偷拍福利| 韩国视频理论视频久久| 亚洲精品视频中文字幕| 亚洲精品天天看| 97国产精品视频人人做人人爱| 国产精品一区二区久久国产| 91精品国产综合久久久久久久久| 久久精品视频免费播放| 国内精品小视频在线观看| 亚洲精品白浆高清久久久久久| 亚洲美女av网站| 欧美激情国产高清| 91精品国产91| 91久久久久久久一区二区| 国产精品久久久久久久美男| 久久久久国产精品一区| 日韩电影免费观看在线观看| 日韩av在线天堂网| 国产精品久久久久久久av大片| 91亚洲精华国产精华| 欧美大肥婆大肥bbbbb| 国产精品三级网站| 久久深夜福利免费观看| 国产欧美一区二区三区视频| 亚洲精品在线不卡| 国产视频精品一区二区三区| 国产精品美乳一区二区免费| 欧美日韩在线视频观看| 亚洲欧美国产日韩中文字幕| 国产视频观看一区| 成人黄色av免费在线观看| 日韩精品极品在线观看播放免费视频| 欧美日韩国产在线| 国产精品一二区| 欧美视频在线免费| 亚洲国产精品va在线看黑人动漫| 97视频免费在线看| 一本色道久久综合狠狠躁篇的优点| 欧美成年人视频网站| 欧美激情精品久久久久久变态| 久热99视频在线观看| 欧美亚洲午夜视频在线观看| 亚洲第一精品电影| 91sao在线观看国产| 国模精品视频一区二区三区| 欧美成人免费va影院高清| 色综合久久88色综合天天看泰| 69av在线视频| 国产精品人人做人人爽| 91国语精品自产拍在线观看性色| 欧美在线视频在线播放完整版免费观看| 亚洲国产另类久久精品| 日产精品久久久一区二区福利| 中文字幕久热精品视频在线| 国内精品一区二区三区四区| 国外成人在线直播| 日韩av电影手机在线| 亚洲美女福利视频网站| 亚洲男人的天堂网站| 欧洲中文字幕国产精品| 97视频在线播放| 日韩中文字幕国产精品| 国产日韩av在线播放| 久久久久久久久久婷婷| 国产精品影院在线观看| 欧美高清videos高潮hd| 欧美在线免费观看| 日韩av影片在线观看| 亚洲人成五月天| 欧美日韩午夜激情| 欧美亚洲国产视频| 国产精品一香蕉国产线看观看| 91精品久久久久久久久青青| 欧美成人午夜免费视在线看片| 亚洲国产精品成人va在线观看| 最近免费中文字幕视频2019| 最好看的2019的中文字幕视频| 亚洲成人av在线播放| 国产精品久久国产精品99gif| 欧美在线一级视频| 福利视频第一区| 欧美成人免费视频| 国产欧美精品一区二区| 久久中国妇女中文字幕| 精品国产一区二区三区四区在线观看| 伊人激情综合网| 麻豆一区二区在线观看| 欧美性猛交xxxx久久久| 亚洲欧美在线免费观看| 亚洲女人天堂av| 高清欧美性猛交xxxx| 亚洲国产天堂久久国产91| 欧美专区第一页| 亚洲国产精品悠悠久久琪琪| 久久99国产精品久久久久久久久| 亚洲全黄一级网站| 92国产精品久久久久首页| 日韩中文字幕亚洲| 亚洲精品97久久| 日韩激情片免费| 久久视频这里只有精品| 亚洲桃花岛网站| 久久乐国产精品| 日韩一区二区三区xxxx|