微信小程序?qū)崿F(xiàn)登錄頁(yè)云層漂浮的動(dòng)畫(huà)效果
前言
2017年前端火了,微信小程序、weex、reactnative,就連支付寶也搞起了小程序,總感覺(jué)這是原生要?dú)绲墓?jié)奏啊,我也乘熱上車(chē)萬(wàn)一波。
上效果圖(GIF動(dòng)態(tài)圖)
當(dāng)我看到這張背景圖的時(shí)候,強(qiáng)迫癥立馬來(lái)了,這云朵為什么不動(dòng),于是開(kāi)始了一波折騰。
知識(shí)點(diǎn)
認(rèn)識(shí)animation
animation 屬性是一個(gè)簡(jiǎn)寫(xiě)屬性,用于設(shè)置六個(gè)動(dòng)畫(huà)屬性:
值 | 描述 |
animation-name | 規(guī)定需要綁定到選擇器的 keyframe 名稱 |
animation-duration | 規(guī)定完成動(dòng)畫(huà)所花費(fèi)的時(shí)間,以秒或毫秒計(jì) |
animation-timing-function | 規(guī)定動(dòng)畫(huà)的速度曲線 |
animation-delay | 規(guī)定在動(dòng)畫(huà)開(kāi)始之前的延遲 |
animation-iteration-count | 規(guī)定動(dòng)畫(huà)應(yīng)該播放的次數(shù) |
animation-direction | 規(guī)定是否應(yīng)該輪流反向播放動(dòng)畫(huà) |
認(rèn)識(shí)translate
方法特別多,本文主要用2個(gè)。
translate3d(x,y,z)
定義 3D 縮放轉(zhuǎn)換。rotate3d(x,y,z,angle)
定義 3D 旋轉(zhuǎn)。
translate3d(1,1,0)
你可以理解為(左右,上下,大?。┳兓?。
rotate3d(1,1,0,45deg)
實(shí)現(xiàn)
1.兩朵云除了大小和初始位置不通,其他都相同。
.cloud { position: absolute; z-index: 3; width:99px;height:64px; top: 0; right: 0; bottom: 0; animation: cloud 5s linear infinite; } @keyframes cloud { from { transform: translate3d(-125rpx, 0, 0); } to { transform: translate3d(180rpx, 0, 0); } }
其中rpx是微信特有的屬性,不受屏幕大小的影響,類(lèi)似于安卓里的dp單位。keyframes是勻速移動(dòng),從css里可以看到只改變了左右方向。
2.頭像本來(lái)想加個(gè)吊籃,像蕩秋千一樣的蕩漾,但是沒(méi)有成功,只是隨便搞了個(gè)飄來(lái)飄去的動(dòng)畫(huà)。
代碼如下
@keyframes pic { 0% { transform: translate3d(0, 20rpx, 0) rotate(-15deg); } 15% { transform: translate3d(0, 0rpx, 0) rotate(25deg); } 36% { transform: translate3d(0, -20rpx, 0) rotate(-20deg); } 50% { transform: translate3d(0, -10rpx, 0) rotate(15deg); } 68% { transform: translate3d(0, 10rpx, 0) rotate(-25deg); } 85% { transform: translate3d(0, 15rpx, 0) rotate(15deg); } 100% { transform: translate3d(0, 20rpx, 0) rotate(-15deg); } }
沒(méi)想到keyframes不僅有支持from to還支持百分比,不錯(cuò)。這里,只要控制好層級(jí)關(guān)系、動(dòng)畫(huà)時(shí)長(zhǎng)、透明度即可實(shí)現(xiàn)云層漂浮。
總結(jié)
不得不說(shuō)css還是有很多動(dòng)畫(huà)的,也有很多特效,微信小程序里加一點(diǎn)動(dòng)畫(huà),能使頁(yè)面稍微美觀點(diǎn)。當(dāng)然,復(fù)雜點(diǎn)的動(dòng)畫(huà),只能有機(jī)會(huì)再更新。
好了,以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
- 微信小程序?qū)崿F(xiàn)元素漸入漸出動(dòng)畫(huà)效果封裝方法
- 微信小程序 小程序制作及動(dòng)畫(huà)(animation樣式)詳解
- 微信小程序的動(dòng)畫(huà)效果詳解
- 微信小程序 連續(xù)旋轉(zhuǎn)動(dòng)畫(huà)(this.animation.rotate)詳解
- 微信小程序?qū)崿F(xiàn)animation動(dòng)畫(huà)
- 微信小程序scroll-view組件實(shí)現(xiàn)滾動(dòng)動(dòng)畫(huà)
- 微信小程序loading組件顯示載入動(dòng)畫(huà)用法示例【附源碼下載】
- 微信小程序開(kāi)發(fā)animation心跳動(dòng)畫(huà)效果
- 微信小程序開(kāi)發(fā)之錄音機(jī) 音頻播放 動(dòng)畫(huà)實(shí)例 (真機(jī)可用)
- 微信小程序?qū)崿F(xiàn)漸入漸出動(dòng)畫(huà)效果
相關(guān)文章
BootStrap創(chuàng)建響應(yīng)式導(dǎo)航條實(shí)例代碼
這篇文章主要介紹了BootStrap創(chuàng)建響應(yīng)式導(dǎo)航條實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下2016-05-05javascript如何在foreach循環(huán)完成之后執(zhí)行一個(gè)回調(diào)函數(shù)
forEach()是前端開(kāi)發(fā)中操作數(shù)組的一種方法,主要功能是遍歷數(shù)組,其實(shí)就是 for 循環(huán)的升級(jí)版,下面這篇文章主要給大家介紹了關(guān)于javascript如何在foreach循環(huán)完成之后執(zhí)行一個(gè)回調(diào)函數(shù)的相關(guān)資料,需要的朋友可以參考下2023-11-11用JS實(shí)現(xiàn)3D球狀標(biāo)簽云示例代碼
3D球狀標(biāo)簽云的效果想必很多朋友在瀏覽網(wǎng)頁(yè)時(shí)都有見(jiàn)到過(guò)吧,看起來(lái)提復(fù)雜的,其實(shí)實(shí)現(xiàn)起來(lái)挺容易的,感興趣的朋友可以了解下本文2013-12-12JavaScript樹(shù)型數(shù)據(jù)與一維數(shù)組相互轉(zhuǎn)換方式
這篇文章主要介紹了JavaScript樹(shù)型數(shù)據(jù)與一維數(shù)組相互轉(zhuǎn)換方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06

重寫(xiě)JS setTimeout 方法 JavaScript Hook

基于JavaScript實(shí)現(xiàn)帶縮略圖的輪播效果

js調(diào)試系列 控制臺(tái)命令行API使用方法