滅霸打響指的消失效果。效果來源於 Google 搜索「滅霸」 或者 「thanos」。算是蹭熱度的一個 Feature
, 我經過 F12
試圖去查看是如何實現的,也摳了一些音頻、圖片資源下來。後來在 github 上找到了一個現有的項目 Thanos_Dust, 因此參考了部分它的代碼。 其實它的代碼已經算比較完善了,在它的基礎上,我用 vue 來寫了一下,加了一些英雄,修復了一些 bug ,加了一些效果之類的。html
能夠點擊下面的連接體驗一下前端
demosvue
隨機選取一半的英雄,是經過下面的算法進行選取的:git
arr.sort(function() {
return 0.5 - Math.random();
});
複製代碼
被選中的英雄灰飛煙滅的效果解釋:github
dom
節點渲染爲一個 canvas
節點canvas
畫布圖像按像素分割成許多塊dom
節點同一個位置、一樣的大小的容器覆蓋原 dom
節點appendChild
方法添加到第三步建立的父容器中rotate
角度和 translate
像素,就能完成灰飛煙滅的效果dom
節點設置爲不可見的,就完成了響指操做。翻轉時間,英雄又回來的效果是將原來的 dom
節點設置爲可見的,並加了回覆動畫。( google
的原版恢復動畫是將 color
設置爲 green
,由於這裏沒什麼文字效果並不明顯,就設置成了 background-color
)算法
整個過程其實跟 vue 沒什麼關係,不管用什麼前端技術棧均可以。之前也沒有接觸過 canvas ,彷佛以爲還有點意思, 後面可能慢慢還會作一些改動,會繼續學習 canvas 。最後附上 github 地址.canvas