电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

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

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

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

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

愛(ài)心效果

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

<transition :name=' isLike ? ’zoom’ : ’’ ' mode='out-in'> <!-- 愛(ài)心圖標(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í)有動(dòng)畫,取消點(diǎn)贊不要?jiǎng)赢嫞?transition 的 name 屬性需要根據(jù) isLike 變量變化,當(dāng) isLike 為 true 時(shí),給他 zoom 動(dòng)畫,否則不給動(dòng)畫。動(dòng)畫模式是 out-in 即先出后進(jìn)。原來(lái)的圖標(biāo)先從大變小,然后新圖標(biāo)再?gòu)男∽兇蟆?/p>

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

接下來(lái)寫 css

/** 動(dòng)畫進(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)場(chǎng)開(kāi)始的狀態(tài)和離場(chǎng)結(jié)束的狀態(tài),都是縮放到0 **/.zoom-enter, .zoom-leave-to { transform: scale(0);}/** 設(shè)置進(jìn)場(chǎng)結(jié)束的狀態(tài)和離場(chǎng)開(kāi)始的狀態(tài), 都是縮放到1 **/.zoom-enter-to, .zoom-leave { transform: scale(1);}

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

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

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

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

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

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

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

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

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

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

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

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

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

數(shù)字滾動(dòng)動(dòng)畫

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

<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ì)算上下滾動(dòng)的距離,所以需要把數(shù)字的高度定死在 17px,接下來(lái)寫 transition 的動(dòng)畫 class。我們通過(guò)點(diǎn)贊狀態(tài)來(lái)判斷應(yīng)該用那一套動(dòng)畫,點(diǎn)贊時(shí) transition 的 name 是 plus ,取消點(diǎn)贊時(shí)是 minus 。

// 點(diǎn)贊數(shù)字+1動(dòng)畫.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動(dòng)畫.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)贊動(dòng)畫

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

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

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

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

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

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

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

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

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

標(biāo)簽: Vue
相關(guān)文章:
主站蜘蛛池模板: 河南mpp电力管_mpp电力管生产厂家_mpp电力电缆保护管价格 - 河南晨翀实业 | 智能终端_RTU_dcm_北斗星空自动化科技 | 分轨 | 上传文件,即刻分离人声和伴奏 | 岸电电源-60HZ变频电源-大功率变频电源-济南诚雅电子科技有限公司 | 折弯机-刨槽机-数控折弯机-数控刨槽机-数控折弯机厂家-深圳豐科机械有限公司 | 火锅加盟_四川成都火锅店加盟_中国火锅连锁品牌十强_朝天门火锅【官网】 | 废气处理_废气处理设备_工业废气处理_江苏龙泰环保设备制造有限公司 | 除湿机|工业除湿机|抽湿器|大型地下室车间仓库吊顶防爆除湿机|抽湿烘干房|新风除湿机|调温/降温除湿机|恒温恒湿机|加湿机-杭州川田电器有限公司 | uv机-uv灯-uvled光固化机-生产厂家-蓝盾机电 | 创客匠人-让IP变现不走弯路 | 富森高压水枪-柴油驱动-养殖场高压清洗机-山东龙腾环保科技有限公司 | 小程序开发公司_APP开发多少钱_软件开发定制_微信小程序制作_客户销售管理软件-济南小溪畅流网络科技有限公司 | 杭州网络公司_百度SEO优化-外贸网络推广_抖音小程序开发-杭州乐软科技有限公司 | 量子管通环-自清洗过滤器-全自动反冲洗过滤器-北京罗伦过滤技术集团有限公司 | 面粉仓_储酒罐_不锈钢储酒罐厂家-泰安鑫佳机械制造有限公司 | 东莞工作服_东莞工作服定制_工衣订做_东莞厂服 | 分光色差仪,测色仪,反透射灯箱,爱色丽分光光度仪,美能达色差仪维修_苏州欣美和仪器有限公司 | 智能终端_RTU_dcm_北斗星空自动化科技| 存包柜厂家_电子存包柜_超市存包柜_超市电子存包柜_自动存包柜-洛阳中星 | PCB厂|线路板厂|深圳线路板厂|软硬结合板厂|电路板生产厂家|线路板|深圳电路板厂家|铝基板厂家|深联电路-专业生产PCB研发制造 | 浙江华锤电器有限公司_地磅称重设备_防作弊地磅_浙江地磅售后维修_无人值守扫码过磅系统_浙江源头地磅厂家_浙江工厂直营地磅 | 一体化净水器_一体化净水设备_一体化水处理设备-江苏旭浩鑫环保科技有限公司 | 篮球地板厂家_舞台木地板品牌_体育运动地板厂家_凯洁地板 | 黑田精工电磁阀-CAMMOZI气缸-ROSS电磁-上海茂硕机械设备有限公司 | EDLC超级法拉电容器_LIC锂离子超级电容_超级电容模组_软包单体电容电池_轴向薄膜电力电容器_深圳佳名兴电容有限公司_JMX专注中高端品牌电容生产厂家 | 生物制药洁净车间-GMP车间净化工程-食品净化厂房-杭州波涛净化设备工程有限公司 | 北京模型公司-军事模型-工业模型制作-北京百艺模型沙盘公司 | 提升海外网站流量,增加国外网站访客UV,定制海外IP-访客王 | 北京森语科技有限公司-模型制作专家-展览展示-沙盘模型设计制作-多媒体模型软硬件开发-三维地理信息交互沙盘 | 碎石机设备-欧版反击破-欧版颚式破碎机(站)厂家_山东奥凯诺机械 高低温试验箱-模拟高低温试验箱订制-北京普桑达仪器科技有限公司【官网】 | 【MBA备考网】-2024年工商管理硕士MBA院校/报考条件/培训/考试科目/提前面试/考试/学费-MBA备考网 | 紧急切断阀_气动切断阀_不锈钢阀门_截止阀_球阀_蝶阀_闸阀-上海上兆阀门制造有限公司 | 脱硝喷枪-氨水喷枪-尿素喷枪-河北思凯淋环保科技有限公司 | 江苏皓越真空设备有限公司 | 深圳富泰鑫五金_五金冲压件加工_五金配件加工_精密零件加工厂 | VOC检测仪-甲醛检测仪-气体报警器-气体检测仪厂家-深恒安科技有限公司 | 胶辊硫化罐_胶鞋硫化罐_硫化罐厂家-山东鑫泰鑫智能装备有限公司 意大利Frascold/富士豪压缩机_富士豪半封闭压缩机_富士豪活塞压缩机_富士豪螺杆压缩机 | 回转支承-转盘轴承-回转驱动生产厂家-洛阳隆达轴承有限公司 | 半自动预灌装机,卡式瓶灌装机,注射器灌装机,给药器灌装机,大输液灌装机,西林瓶灌装机-长沙一星制药机械有限公司 | 真空冷冻干燥机_国产冻干机_冷冻干燥机_北京四环冻干 | 培训一点通 - 合肥驾校 - 合肥新亚驾校 - 合肥八一驾校 |