vue.js css3 開(kāi)獎(jiǎng)動(dòng)畫(huà)

添加示例項(xiàng)目地址:https://gitee.com/bartflyian/awardResult-animation/tree/master/award_animation

記錄開(kāi)發(fā)問(wèn)題,溫故而知新。

這次遇到需求想要做一個(gè)開(kāi)獎(jiǎng)結(jié)果的動(dòng)畫(huà)效果。本來(lái)認(rèn)為用css的transition就可以全部完成,但要求最后一個(gè)結(jié)果需要3種不同的呈現(xiàn)效果。最后的結(jié)果如下:

其中一種(中間停頓后倒回)gif錄制的有些卡頓的感覺(jué)

OK,最基本的是先寫(xiě)5個(gè)方框,并將其背景圖設(shè)置為

背景圖


這個(gè)是具體的html和css(init值是判斷是否首次加載組件,避免在首次加載時(shí)觸發(fā)動(dòng)畫(huà))


5個(gè)方格的樣式

第5個(gè)格子的keyframes動(dòng)畫(huà)樣式 ($num 這個(gè)標(biāo)識(shí)點(diǎn)是我業(yè)務(wù)上需要才添加的,styleNum就是用來(lái)區(qū)分需求里的3種不同動(dòng)畫(huà)效果,因?yàn)楹竺媸莿?dòng)態(tài)修改樣式,所以keyframes的樣式值是初始值而已,具體的在下面setKeyframes()中設(shè)置樣式)



接下來(lái)是按動(dòng)畫(huà)的開(kāi)始結(jié)束來(lái):

當(dāng)前端監(jiān)聽(tīng)收到結(jié)果改變時(shí),執(zhí)行動(dòng)畫(huà)函數(shù)animation(),貼下代碼


額,截得不好,和下面一張合并的

那么比較復(fù)雜的就是findkeyframesrule和setkeyframes這兩個(gè)了,這兩個(gè)是為了最后一格的keyframe動(dòng)畫(huà)可以動(dòng)態(tài)修改樣式值(如果有其他方法可以去動(dòng)態(tài)修改keyframe動(dòng)畫(huà)的值,可以留言告訴我)


setKeyframes的分兩個(gè)圖截



篇幅有點(diǎn)長(zhǎng)可能看的蒙,總的來(lái)說(shuō)就是:

監(jiān)聽(tīng)到結(jié)果改變 ---> 根據(jù)結(jié)果值動(dòng)態(tài)修改樣式(前4格用$refs追蹤到節(jié)點(diǎn)直接修改style,最后一格因?yàn)橛玫絢eyframes動(dòng)畫(huà),所以還需要用findkeyframesrule和setkeyframes去修改樣式表的值)---> 動(dòng)畫(huà)結(jié)束后刪掉class(animation)


瀏覽過(guò)程中有哪些問(wèn)題可以一起探討解決

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 選擇qi:是表達(dá)式 標(biāo)簽選擇器 類(lèi)選擇器 屬性選擇器 繼承屬性: color,font,text-align,li...
    love2013閱讀 2,460評(píng)論 0 11
  • 【Android 動(dòng)畫(huà)】 動(dòng)畫(huà)分類(lèi)補(bǔ)間動(dòng)畫(huà)(Tween動(dòng)畫(huà))幀動(dòng)畫(huà)(Frame 動(dòng)畫(huà))屬性動(dòng)畫(huà)(Property ...
    Rtia閱讀 6,446評(píng)論 1 38
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒(méi)有地址/指針的概念1.2> 泛型1.3> 類(lèi)型嚴(yán)謹(jǐn) 對(duì)...
    cosWriter閱讀 11,689評(píng)論 1 32
  • 在AngularJS應(yīng)用中創(chuàng)建動(dòng)畫(huà),有三種途徑: 使用CSS3動(dòng)畫(huà) 使用JavaScript動(dòng)畫(huà) 使用CSS3過(guò)渡...
    oWSQo閱讀 1,564評(píng)論 0 3
  • CSS參考手冊(cè) 一、初識(shí)CSS3 1.1 CSS是什么 CSS3在CSS2.1的基礎(chǔ)上增加了很多強(qiáng)大的新功能。目前...
    沒(méi)汁帥閱讀 4,296評(píng)論 1 13

友情鏈接更多精彩內(nèi)容