大廠h5開源視頻系列css
是一個專題,在這個專題中咱們會解析一些酷酷的線上h5,在每個細節,每個細膩的過渡背後都能看到前端工程師付出的心血,本篇帶來的是 👉👉 網易雲音樂年度總結html
歡迎關注以往的文章:前端
線上連接請戳 👉👉 網易雲音樂年度總結git
他並無多震撼多酷炫, 那些花裏胡哨的都沒有,能形容的只有兩個詞:用心 細膩。網易雲真的很用心,只要在 app 內部搜索【年度總結】你依然能看到本身的年度總結,在看到那首深夜還在聽的歌,聽過最多的歌詞等瞬間,你是否回想起那個你愛過的女孩,是否能激起內心的漣漪。github
這個應該比較簡單,咱們上篇文章也講解過: 只須要bash
opacity: 0
過渡到 opacity: 1;
transform: translateY(6px);
過渡到 transform: translateY(0px);
transition-delay: 0.2s; transition-delay: 0.3s; transition-delay: 0.4s;
這裏比較費心:前端工程師
能夠看到除了音符外,這我的分爲 頭 身體 大腿 小腿 還有可愛的 jiojioapp
每個部位都是定位定好的,能夠看出原做者真的耗費不少心血。<div class="id7_yinfu11">
<div class="id6_tou">
<div class="P1hair"></div>
</div>
<div class="id13_shenti"></div>
<div class="id11_2xiaotui">
<div class="id12_2jiojiopng"></div>
</div>
<div class="id8_1datui">
<div class="id9_1xiaotui">
<div class="id10_1jiojiopng"></div>
</div>
</div>
<div class="id15_yinfu12"></div>
</div>
複製代碼
音符擺動,左右搖擺便可。svg
animation: yinfu11 5s cubic-bezier(.445,.05,.55,.95) infinite;
@keyframes yinfu {
0% {
transform: rotate(-2deg);
}
51.67% {
transform: rotate(2deg);
}
100% {
transform: rotate(-2deg);
}
}
複製代碼
小腿往前踢,rotate 負數便可。佈局
@keyframes xiaotui {
0% {
transform: rotate(0deg);
}
51.67% {
transform: rotate(-32deg);
}
100% {
transform: rotate(0deg);
}
}
複製代碼
【永遠】 兩個詞的出場實在太秀了,但其實實現還比較簡單。 分解一下就是:
左右旋轉就不過多介紹, 漸漸放大和背景模糊,背景模糊這裏用到了 filter:blur()
,整個動畫以下:
@keyframes blurAppear {
0% {
filter: blur(10px);
transform: scale(.8);
opacity: 0;
}
100% {
filter: blur(0);
transform: scale(1);
opacity: 1;
}
}
複製代碼
整個鞦韆以下。
左右擺動,設置rotate
便可,須要注意的是:
@keyframes ani4_qiuqian {
0% {
transform: rotateZ(0deg);
}
50% {
transform: rotateZ(31.99359208deg);
}
100% {
transform: rotateZ(0deg);
}
}
複製代碼
須要注意的是 這裏角度較小,爲了擺動的幅度大一點,能夠設置 transform-origin: -16.10878661% -29.76878613%;
鞦韆完成以後,鞦韆上只有人的枝幹,須要把腿,頭,脖子等一一安放好。
以後就是擺腿,搖頭的動畫,咱們上文已經說起,這裏不過多介紹。這裏做者作了分解,把不須要動的做爲軀幹固定好,好比人的軀幹,貓的軀幹。
以後把須要動的,好比貓尾巴,貓爪, 人手... 做爲另一個部分裝上去。@keyframes juanAnimation {
0% {
background-position: 0 0
}
3.70% {
background-position: -483px 0
}
7.41% {
background-position: -966px 0
}
11.11% {
background-position: -1449px 0
}
... 略過其中的幾幀
100.00% {
background-position: -1449px -954px
}
}
複製代碼
定好的動畫,咱們上下捲紙的時候只須要讓其中的一個動畫反向播放便可。
animation: juanAnimation .5s steps(1) reverse,
juanAnimation 1s steps(1) 1s forwards;
複製代碼
在這個案列中其中不少動畫並不難,但倒是很是耗費工做量的,不少部位的拆分定位,並且越是細膩的動畫須要的代碼量也就越多。
你可在 github上獲取源碼 你能夠跟着 開源視屏 一步步實現。
下篇咱們依舊帶來 h5 的分享,內容依舊精彩。 最後, 感謝網易雲音樂前端團隊的創意做品,給予咱們的靈感和一塊兒學習的機會!