微信小程序實現登錄頁云層漂浮的動畫效果
前言
2017年前端火了,微信小程序、weex、reactnative,就連支付寶也搞起了小程序,總感覺這是原生要毀滅的節(jié)奏啊,我也乘熱上車萬一波。
上效果圖(GIF動態(tài)圖)

當我看到這張背景圖的時候,強迫癥立馬來了,這云朵為什么不動,于是開始了一波折騰。
知識點
認識animation
animation 屬性是一個簡寫屬性,用于設置六個動畫屬性:
| 值 | 描述 |
| animation-name | 規(guī)定需要綁定到選擇器的 keyframe 名稱 |
| animation-duration | 規(guī)定完成動畫所花費的時間,以秒或毫秒計 |
| animation-timing-function | 規(guī)定動畫的速度曲線 |
| animation-delay | 規(guī)定在動畫開始之前的延遲 |
| animation-iteration-count | 規(guī)定動畫應該播放的次數 |
| animation-direction | 規(guī)定是否應該輪流反向播放動畫 |
認識translate
方法特別多,本文主要用2個。
translate3d(x,y,z)定義 3D 縮放轉換。rotate3d(x,y,z,angle)定義 3D 旋轉。
translate3d(1,1,0)
你可以理解為(左右,上下,大?。┳兓?br />
rotate3d(1,1,0,45deg)

實現
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是勻速移動,從css里可以看到只改變了左右方向。
2.頭像本來想加個吊籃,像蕩秋千一樣的蕩漾,但是沒有成功,只是隨便搞了個飄來飄去的動畫。

代碼如下
@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);
}
}
沒想到keyframes不僅有支持from to還支持百分比,不錯。這里,只要控制好層級關系、動畫時長、透明度即可實現云層漂浮。
總結
不得不說css還是有很多動畫的,也有很多特效,微信小程序里加一點動畫,能使頁面稍微美觀點。當然,復雜點的動畫,只能有機會再更新。
好了,以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關文章
bootstrap table實現x-editable的行單元格編輯及解決數據Empty和支持多樣式問題
本文著重解決x-editable編輯的數據動態(tài)添加和顯示數據為Empty的問題,還有給表格單元格的內容設置多樣式,使得顯示多樣化,需要的朋友可以參考下2017-08-08
使用Javascript開發(fā)sliding-nav帶滑動條效果的導航插件
這篇文章主要介紹了使用Javascript開發(fā)sliding-nav帶滑動條效果的導航插件,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-03-03

