微信小程序?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是微信特有的屬性,不受屏幕大小的影響,類似于安卓里的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)文章
javascript正則表達(dá)式基礎(chǔ)知識(shí)入門(mén)
很長(zhǎng)時(shí)間沒(méi)看正則表達(dá)式了,碰巧今天用到,溫故知新了一把,這里記錄下來(lái),分享給大家,都是些基礎(chǔ)的知識(shí),重點(diǎn)給大家講解的是正則表達(dá)式中4種常用的方法,50% 的舉一反三練習(xí)中的原創(chuàng)。2015-04-04
JS中圖片緩沖loading技術(shù)的實(shí)例代碼
這篇文章介紹了JS中圖片緩沖loading技術(shù)的實(shí)例代碼,有需要的朋友可以參考一下2013-08-08
js倒計(jì)時(shí)簡(jiǎn)單實(shí)現(xiàn)方法
這篇文章主要介紹了js倒計(jì)時(shí)簡(jiǎn)單實(shí)現(xiàn)方法,方便一些提示重要日期的來(lái)臨,感興趣的小伙伴們可以參考一下2015-12-12
bootstrap table實(shí)現(xiàn)x-editable的行單元格編輯及解決數(shù)據(jù)Empty和支持多樣式問(wèn)題
本文著重解決x-editable編輯的數(shù)據(jù)動(dòng)態(tài)添加和顯示數(shù)據(jù)為Empty的問(wèn)題,還有給表格單元格的內(nèi)容設(shè)置多樣式,使得顯示多樣化,需要的朋友可以參考下2017-08-08
使用Javascript開(kāi)發(fā)sliding-nav帶滑動(dòng)條效果的導(dǎo)航插件
這篇文章主要介紹了使用Javascript開(kāi)發(fā)sliding-nav帶滑動(dòng)條效果的導(dǎo)航插件,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03
利用JavaScript為句子加標(biāo)題的3種方法示例
這篇文章主要給大家介紹了關(guān)于如何利用JavaScript為句子加標(biāo)題的3種方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01
一個(gè)JavaScript函數(shù)把URL參數(shù)解析成Json對(duì)象
一個(gè)JavaScript函數(shù)parseQueryString,它的用途是把URL參數(shù)解析為一個(gè)對(duì)象,很實(shí)用,大家可以看看2014-09-09

