Web 動畫週報,一週一刊,每週五發布。讓咱們來一塊兒聊聊 Web 動畫,和它們背後的故事。html
本期亮點:Jon Kantner 利用視覺欺騙向咱們展現瞭如何在 CSS 中寫出球形按鈕。Yoichi Kobayashi 用 GLSL 創造出瞭如夢似幻的水晶模型。git
週報將 Web 動畫大體分爲三類:CSS 動畫、SVG 動畫 和 WebGL/Canvas 動畫。全部的動畫將按類別展現,方便讀者有針對性的學習。github
<div>
元素 。
<div>
元素 ,有同窗可能會想,一個
<div>
是如何作到鞋盒的裏側和外側兩種不一樣的背景顏色的呢,答案是:僞元素。將僞元素絕對定位到與自身的
<div>
元素相重合,再賦予僞元素不一樣的背景色便可。另外,鞋盒四周的每一個面上都使用了
linear-gradient
來輔助加強 3D 效果,鞋盒底面使用了
radial-gradient
來加強圖片的 3D 效果。
box-shadow
實現的。複選框被按下時會被
scale(0.9)
,用來模擬被按下時的震動。勾選標誌則是藉助僞元素實現的。雖然只是一個小小的複選框,可是動畫作到如此細膩也絕非易事。
<div>
元素對齊,再對僞元素進行
skew(2deg, 3deg);
在 hover 時再改成
skew(-2deg, -3deg);
。
border-radius
畫了兩個半圓,當按鈕向右邊移動時,左邊的半圓
scaleX(0)
右邊的半圓
scaleX(1)
,按鈕向左滑動時則反之。把多餘的效果去掉,再給左右兩個半圓附上不一樣的顏色,核心動畫實際上是這個樣子:
translate
和
rotate
而已。動畫有不少小細節,好比能夠用圓盤控制動畫的播放進程,能夠一鍵改變 SVG 的顏色製造白天和夜晚的效果等。另外,介紹一下動畫的做者: Sarah Drasner,曾就任於微軟,Vue 團隊核心成員,同時也是一位 Web 動畫大師,尤爲擅長 svg 動畫,因爲她最近想體驗一下在小公司上班是什麼感受,因而跳槽到了 Netlify 。
<feGaussianBlur>
與
<feColorMatrix>
濾鏡完成的。鼻孔的噴氣特效混合了
<feTurbulence>
與
<feDisplacementMap>
濾鏡。眨眼則是藉助 morph SVG 完成的。動畫每秒有超過 280 個 DOM 在移動,可是經過優化依舊能達到 60 FPS。最後安利一下貓神的設計者,王空空同窗,像這樣好看的京劇臉譜圖他畫了
一百張。
MeshPhongMaterial
, 加了兩道
DirectionalLight
和一個
AmbientLight
。凝膠的蠕動效果則是藉助 simplex-noise 這個庫完成的。雖然都不復雜,但最終呈現出來的效果卻很是好。
谷歌開源新圖片格式web
就在上週,谷歌開源了一種新的圖片格式:.basis
。由於這種圖片格式直接在 GPU 中解碼,因此解碼速度很是快,圖片自己的大小也比普通的圖片格式小不少。一張 15M 的 .png
圖片轉換爲 .basis
圖片後僅有 0.6M。這種新的圖片格式很是適用於 web 3D 技術,使用新的 .basis
圖片格式的 web app 和遊戲可以擁有 6-8 倍於以往的貼圖。目前,最新版本的 Three.js r106 已經支持了.basis
圖片格式。閱讀更多app
這一期的 Web 動畫週報就到這裏啦。若是你對週報有什麼意見或者建議,歡迎在下方留言。你也能夠向週報投稿,投稿的方式是把本身的動畫的 Codepen 連接發送到週報下面的評論裏便可。Web 動畫週報,一週一刊,每週五發布,咱們下週見!框架
往期週報: 《Web動畫週報》第一期:好戲開場svg