溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

使用vue如何實(shí)現(xiàn)滅霸打響指英雄消失的效果

發(fā)布時(shí)間:2021-05-21 10:21:53 來源:億速云 閱讀:139 作者:小新 欄目:web開發(fā)

這篇文章主要介紹使用vue如何實(shí)現(xiàn)滅霸打響指英雄消失的效果,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

寫在前面

滅霸打響指的消失效果。效果來源于 Google 搜索“滅霸” 或者 “thanos”。算是蹭熱度的一個(gè) Feature, 我通過 F12 試圖去查看是如何實(shí)現(xiàn)的,也摳了一些音頻、圖片資源下來。后來在 github 上找到了一個(gè)現(xiàn)有的項(xiàng)目 Thanos_Dust, 所以參考了部分它的代碼。 其實(shí)它的代碼已經(jīng)算比較完善了,在它的基礎(chǔ)上,我用 vue 來寫了一下,加了一些英雄,修復(fù)了一些 bug ,加了一些效果之類的。

使用vue如何實(shí)現(xiàn)滅霸打響指英雄消失的效果

使用vue如何實(shí)現(xiàn)滅霸打響指英雄消失的效果

demo

  • 點(diǎn)擊一下手套,伴隨音效和響指的動(dòng)畫,會(huì)有一半的英雄消失。

  • 消失之后,再點(diǎn)一下,消失的英雄又會(huì)回來。

使用vue如何實(shí)現(xiàn)滅霸打響指英雄消失的效果

細(xì)節(jié)

隨機(jī)選取一半的英雄,是通過下面的算法進(jìn)行選取的:

arr.sort(function() {
 return 0.5 - Math.random();
});

被選中的英雄灰飛煙滅的效果解釋:

  1. 使用 html2canvas 庫將每一個(gè)英雄所在的 dom 節(jié)點(diǎn)渲染為一個(gè) canvas 節(jié)點(diǎn)

  2. 通過 generateFrames 方法,將整塊的 canvas 畫布圖像按像素分割成許多塊

  3. 創(chuàng)建一個(gè)跟選中的英雄所在的 dom 節(jié)點(diǎn)同一個(gè)位置、同樣的大小的容器覆蓋原 dom 節(jié)點(diǎn)

  4. 把第二步創(chuàng)建的塊繪制到新的畫布上,并都通過 appendChild 方法添加到第三步創(chuàng)建的父容器中

  5. 隨機(jī)設(shè)置每一塊的 rotate 角度和 translate 像素,就能完成灰飛煙滅的效果

  6. 將被覆蓋的英雄的 dom 節(jié)點(diǎn)設(shè)置為不可見的,就完成了響指操作。

翻轉(zhuǎn)時(shí)間,英雄又回來的效果是將原來的 dom 節(jié)點(diǎn)設(shè)置為可見的,并加了回復(fù)動(dòng)畫。( google 的原版恢復(fù)動(dòng)畫是將 color 設(shè)置為 green ,因?yàn)檫@里沒什么文字效果并不明顯,就設(shè)置成了 background-color

以上是“使用vue如何實(shí)現(xiàn)滅霸打響指英雄消失的效果”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

vue
AI