成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術(shù)文章
文章詳情頁

Vue transition實(shí)現(xiàn)點(diǎn)贊動畫效果的示例

瀏覽:10日期:2022-09-29 18:08:43
效果一覽

Vue transition實(shí)現(xiàn)點(diǎn)贊動畫效果的示例

愛心效果

材料:愛心圖標(biāo)兩個,沒有我這種 icon 組件的用 png 圖片代替

<transition :name=' isLike ? ’zoom’ : ’’ ' mode='out-in'> <!-- 愛心圖標(biāo) --> <icon data='@icon/like.svg' color='#FF0000' v-if='isLike' key='like'></icon> <icon data='@icon/unlike.svg' color='#333333' v-else key='unlike'></icon></transition>

因?yàn)樵邳c(diǎn)贊時(shí)有動畫,取消點(diǎn)贊不要動畫,所以 transition 的 name 屬性需要根據(jù) isLike 變量變化,當(dāng) isLike 為 true 時(shí),給他 zoom 動畫,否則不給動畫。動畫模式是 out-in 即先出后進(jìn)。原來的圖標(biāo)先從大變小,然后新圖標(biāo)再從小變大。

這里注意當(dāng)兩個切換的組件名稱一致時(shí),需要加 key 屬性,以區(qū)分兩個組件,否則動畫不會生效

接下來寫 css

/** 動畫進(jìn)行時(shí)的class **/.zoom-enter-active, .zoom-leave-active { transition: all .15s cubic-bezier(0.42, 0, 0.34, 1.55);}/** 設(shè)置進(jìn)場開始的狀態(tài)和離場結(jié)束的狀態(tài),都是縮放到0 **/.zoom-enter, .zoom-leave-to { transform: scale(0);}/** 設(shè)置進(jìn)場結(jié)束的狀態(tài)和離場開始的狀態(tài), 都是縮放到1 **/.zoom-enter-to, .zoom-leave { transform: scale(1);}

根據(jù)官方文檔描述,.name-enter-active 和 .name-leave-active 會在動畫進(jìn)行時(shí)設(shè)置到 icon 組件的 class 中,所以這里我們設(shè)置 transition 的動畫屬性,時(shí)間以及曲線。

因?yàn)槲覀冃枰诜糯髸r(shí)略微比 scale(1) 要大一點(diǎn)再回到正常大小,所以要自定義動畫曲線 cubic-bezier(0.42, 0, 0.34, 1.55) 。這個曲線怎么來的呢?

打開 chrome 的調(diào)試面板,隨便找個 dom 設(shè)置 transition-timing-function: ease; 然后點(diǎn)擊 ease 旁邊的曲線小圖標(biāo)

Vue transition實(shí)現(xiàn)點(diǎn)贊動畫效果的示例

拖動拉桿就可以調(diào)整曲線

Vue transition實(shí)現(xiàn)點(diǎn)贊動畫效果的示例

在動畫快結(jié)尾的時(shí)候,使曲線超出結(jié)束點(diǎn)即可。

Vue transition實(shí)現(xiàn)點(diǎn)贊動畫效果的示例

然后復(fù)制曲線面板下面的值 cubic-bezier(0.25, 0.1, 0.27, 1.32) 即可。

更多關(guān)于動畫時(shí)間曲線的知識,這里就不贅述了,網(wǎng)上有很多相關(guān)知識。

關(guān)于縮放部分,按照上述 css 設(shè)定以及 mode='out-in' 動畫模式是先出后進(jìn),在點(diǎn)贊時(shí)。

原來的愛心開始離場,此時(shí)原來愛心縮放狀態(tài)為 1,即大小的 100% 愛心離場動畫進(jìn)行中,此時(shí)開始從 1 縮放到 0,即大小的 0% 原愛心離場完成,新愛心開始進(jìn)場,此時(shí)新愛心縮放狀態(tài)為 0 新愛心進(jìn)場動畫進(jìn)行中,此時(shí)開始從 0 動畫縮放到結(jié)束狀態(tài) 1

當(dāng)取消點(diǎn)贊的時(shí)候,isLike 為 false,transition 的 name 就等于空字符串,此時(shí)就不會有動畫了。

數(shù)字滾動動畫

因?yàn)橹皇菙?shù)字的變化,因此 transition 里只需要一個 div 即可。只是要注意 div 設(shè)置 key,以標(biāo)識數(shù)據(jù)變動。

<div class='like-num-wrapper'> <transition :name='item.is_like ? ’plus’ : ’minus’'><div : :key='item[’like_num’]'> {{item[’like_num’]}}</div> </transition></div>

.like-num-wrapper { position: relative; margin-left: 16px; text-align: end; font-size: 13px; height: 17px; overflow-y: hidden; .like-num { top: 0; left: 0; position: relative; line-height: 17px; } }

需要注意我們?yōu)榱撕糜?jì)算上下滾動的距離,所以需要把數(shù)字的高度定死在 17px,接下來寫 transition 的動畫 class。我們通過點(diǎn)贊狀態(tài)來判斷應(yīng)該用那一套動畫,點(diǎn)贊時(shí) transition 的 name 是 plus ,取消點(diǎn)贊時(shí)是 minus 。

// 點(diǎn)贊數(shù)字+1動畫.plus-enter-active, .plus-leave-active { transition: all .3s ease-in;}.plus-enter, .plus-leave { transform: translateY(0);}.plus-enter-to, .plus-leave-to { transform: translateY(-17px);}// 點(diǎn)贊數(shù)字-1動畫.minus-enter-active, .minus-leave-active { transition: all .3s ease-in;}.minus-enter { transform: translateY(-34px);}.minus-enter-to { transform: translateY(-17px);}.minus-leave { transform: translateY(0);}.minus-leave-to { transform: translateY(17px);}點(diǎn)贊動畫

點(diǎn)贊動畫很簡單,在點(diǎn)贊時(shí)會在老的數(shù)字div下面生成一個新數(shù)字div。此時(shí)只需要讓他們都往上移動 17px 即可。

Vue transition實(shí)現(xiàn)點(diǎn)贊動畫效果的示例

因?yàn)槿∠c(diǎn)贊是數(shù)字從上往下滾動,所以需要讓數(shù)字 1 的初始位置在 2 上面。所以寫出如下代碼,設(shè)定數(shù)字 1 的動畫初始位置

.minus-enter { transform: translateY(-34px);}

為什么是 -34px ?因?yàn)閿?shù)字div的高度是 17px 往上移 17px 會和 2 重疊,那么數(shù)字 1 再往上移動 17px 就會出現(xiàn)在 2 的上面。-17-17 = 34 這一切都發(fā)生在電光火石之間。

接下來在 .minus-enter-to 中位移到 -17px 就可以實(shí)現(xiàn) 1 往下滾動到 2 這個效果了。

數(shù)字 2 的離場動畫就簡單多了 直接從 0 到 17px 就可以滾出去了。

至此整個點(diǎn)贊效果就完成了

以上就是Vue transition實(shí)現(xiàn)點(diǎn)贊動畫效果的示例的詳細(xì)內(nèi)容,更多關(guān)于vue transition實(shí)現(xiàn)點(diǎn)贊效果的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Vue
相關(guān)文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
国产三级精品在线| 色成年激情久久综合| 老牛国产精品一区的观看方式 | 亚洲啪啪91| 久久精品视频在线看| fc2成人免费人成在线观看播放| 欧美一区二区国产| 国产精品乡下勾搭老头1| 欧美一级在线视频| 国产伦精品一区二区三区免费迷 | 麻豆国产精品视频| 久久久综合香蕉尹人综合网| 亚洲图片自拍偷拍| 亚洲一区不卡| 丝袜亚洲另类欧美| 日本大香伊一区二区三区| 日本网站在线观看一区二区三区| 一本久久精品一区二区| 蜜桃久久av一区| 欧美日韩三级视频| 国产精品羞羞答答xxdd| 亚洲精品一区二区精华| 91麻豆精品一区二区三区| 久久久精品2019中文字幕之3| 91性感美女视频| 久久久久国产免费免费| 欧美精品一区二区三区在线看午夜 | 99久久精品国产麻豆演员表| 精品久久久久一区| 欧美在线免费一级片| 欧美激情一区二区三区在线| 狠色狠色综合久久| 亚洲欧美日韩电影| 欧美亚洲免费| 国产一区二区三区久久悠悠色av| 精品国精品自拍自在线| 欧美日韩亚洲三区| 专区另类欧美日韩| 久久av免费一区| 乱一区二区av| 911国产精品| av一区二区不卡| 国产精品不卡在线| 久热re这里精品视频在线6| 激情深爱一区二区| 欧美精品一区二区三区蜜臀| 欧美一区二区三区四区在线观看地址 | 粉嫩嫩av羞羞动漫久久久| 久久综合久久综合九色| 欧美黄污视频| 亚洲影视在线播放| 色综合久久久久久久久| 韩国一区二区视频| 久久精品在这里| 日韩午夜免费视频| 国产嫩草影院久久久久| 亚洲综合不卡| 国产成人免费视频网站| 国产精品卡一卡二卡三| 久久亚洲高清| av网站免费线看精品| 亚洲欧洲精品一区二区三区| 色综合久久久久综合体| 国产成人在线色| 国产精品久久久久婷婷| 在线观看不卡视频| av一本久道久久综合久久鬼色| 玉足女爽爽91| 9191久久久久久久久久久| 国产在线一区二区三区四区| 首页国产欧美久久| 精品久久久久久久一区二区蜜臀| 99亚洲视频| 国产一区二区精品久久91| 国产精品久久久一本精品 | 国产成人综合在线观看| 国产精品入口麻豆九色| 久久综合福利| 成人午夜短视频| 亚洲一区二区三区美女| 日韩欧美在线综合网| 国产欧美大片| 国产成人自拍网| 亚洲永久免费视频| www国产成人免费观看视频 深夜成人网 | 欧美黄免费看| 奇米一区二区三区av| 26uuu精品一区二区在线观看| 亚洲综合视频一区| 91在线视频在线| 日本成人在线看| 国产欧美一区二区在线观看| 色噜噜狠狠成人中文综合| 91香蕉视频mp4| 日本vs亚洲vs韩国一区三区 | 成人18视频在线播放| 亚洲最快最全在线视频| 亚洲精品一区二区三区香蕉| 色播五月激情综合网| 亚洲无线一线二线三线区别av| 国产一区视频在线看| 亚洲最新视频在线播放| 精品盗摄一区二区三区| 色94色欧美sute亚洲线路二| 韩日精品视频| 成人毛片老司机大片| 日韩国产一二三区| 国产精品久久国产精麻豆99网站| 欧美高清hd18日本| 免费视频一区| 合欧美一区二区三区| 国产传媒日韩欧美成人| 天堂蜜桃一区二区三区| 中文字幕一区二| 2020日本不卡一区二区视频| 欧美日韩在线电影| 国产欧美欧美| 91美女视频网站| 国产精品亚洲成人| 午夜亚洲国产au精品一区二区| 欧美极品美女视频| a级精品国产片在线观看| 狠狠久久亚洲欧美| 日韩精品视频网站| 一区二区三区欧美亚洲| 国产精品久久福利| 久久老女人爱爱| 日韩一区二区三区视频| 欧美三级电影一区| 久久一区二区精品| 国产欧美日韩综合一区在线播放| 欧美另类亚洲| 成人免费视频视频| 韩国三级在线一区| 午夜亚洲福利老司机| 亚洲精选免费视频| 中文字幕成人av| 久久久91精品国产一区二区精品| 欧美一级欧美三级| 欧美日韩另类一区| 欧美在线短视频| 久久久久se| 模特精品在线| 国产精品久久波多野结衣| 亚洲成人资源| 国产一区二区中文| 91免费观看视频在线| 成人免费视频免费观看| 国产精品亚洲综合一区在线观看| 免费视频最近日韩| 青青草原综合久久大伊人精品优势| 亚洲综合在线观看视频| 亚洲色图19p| 日韩一区中文字幕| 国产精品久久久久一区| 国产精品天美传媒| 欧美国产综合色视频| 国产日韩欧美不卡| 国产亚洲欧美一区在线观看| 2023国产精华国产精品| 久久―日本道色综合久久| 欧美精品一区二区三区蜜臀| 日韩欧美综合在线| 日韩午夜激情视频| 日韩精品最新网址| 欧美tk丨vk视频| 久久久久久综合| 国产无遮挡一区二区三区毛片日本| 26uuu国产电影一区二区| 久久久久久久综合日本| 久久看人人爽人人| 国产午夜精品一区二区三区四区| 久久精品一区二区三区不卡| 久久日韩粉嫩一区二区三区| 久久久精品日韩欧美| 国产亚洲自拍一区| 中文字幕免费不卡| 国产精品萝li| 亚洲色大成网站www久久九九| 亚洲色图视频网站| 亚洲一区在线视频观看| 天堂在线亚洲视频| 男男视频亚洲欧美| 狠狠色丁香婷综合久久| 国产成人av电影在线| 不卡的av在线| 欧美先锋影音| 在线视频免费在线观看一区二区| 免费在线日韩av| 欧美艳星brazzers| 6080yy午夜一二三区久久| 欧美成人a在线| 久久婷婷综合激情| 中文字幕欧美区| 亚洲精品日日夜夜| 日本美女视频一区二区| 国产精品一区二区三区四区| 成人黄色大片在线观看| 女女同性女同一区二区三区91| 国产精品红桃|