2017年前端火了,微信小程序、weex、reactnative,就連支付寶也搞起了小程序,總感受這是原生要毀滅的節奏啊,我也乘熱上車萬一波。javascript
animation 屬性是一個簡寫屬性,用於設置六個動畫屬性:
值 描述
animation-name 規定須要綁定到選擇器的 keyframe 名稱。。
animation-duration 規定完成動畫所花費的時間,以秒或毫秒計。
animation-timing-function 規定動畫的速度曲線。
animation-delay 規定在動畫開始以前的延遲。
animation-iteration-count 規定動畫應該播放的次數。
animation-direction 規定是否應該輪流反向播放動畫。css
方法特別多,本文主要用2個。前端
translate3d(1,1,0)
你能夠理解爲(左右,上下,大小)變化。
rotate3d(1,1,0,45deg)
java
1.兩朵雲除了大小和初始位置不通,其餘都相同。react
.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仍是有不少動畫的,也有不少特效,微信小程序里加一點動畫,能使頁面稍微美觀點。固然,複雜點的動畫,只能有機會再更新。
轉載請註明出處juejin.im/post/590aac…微信