上次分享了四個CSS3的加載動畫,今天繼續(標題接上一次)。
在線demo:http://liyunpei.xyz/loading.html (持續更新)
請注意:代碼中的關鍵幀動畫有的用的linear曲線,而有的用的是ease曲線。前者是勻速執行,整個動畫以固定的速度執行;后者有加速減速階段,在動畫開始時加速,在動畫將要結束時減速(比如我在50%的地方設置了一個動畫,那么在快要到達50%的時候,動畫開始減速,在超過50%的時候動畫開始加速,表現在頁面上會有一個短暫的停留效果,效果七、效果八最為明顯)
五、效果五

小球爬樓梯的效果,第一看到這個效果,本以為會有點兒復雜,結果寫出來之后覺得也沒有那么難。
首先將樓梯定位至右上角,執行從右上至左下的運動動畫,並為每一個樓梯設置animation-delay的值(我這里用了三個樓梯,總時長1.8s,animation-delay值分別為0s,-0.6s,-12s)
{animation: step_mv 1.8s linear infinite;}
@keyframes step_mv {
0%{
right: 0;
top: 0;
opacity: 0.6;
}
50%{
opacity: 1;
}
100%{
right: 100%;
top: 100%;
opacity: 0.6;
}
}
其次,確定小球與樓梯的接觸點,小球將以此接觸點作為最低基准,同時,改變小球在上升、下降過程中的寬高來是小球跳動更真實。小球動畫的運動時間剛好是樓梯動畫的延遲時間,這樣,才能保證小球可以接觸到每一個樓梯。
{animation: jump .6s 0s ease infinite,jump_S .6s 0s ease infinite;}
@keyframes jump {
50%{
top: 60%;
}
}
@keyframes jump_S {
5%{
height: 25px; //下降過程
width: 15px;
}
54%{
height: 20px;//到達底部
width: 20px;
}
55%{
height: 25px;//上升過程
width: 15px;
}
98%{
height: 20px;//到達頂點
width: 20px;
}
}
六、效果六

這個效果就比較簡單了。
一個矩形div,設置邊框、圓角,將其中任意一個邊框顏色設置為繼承(即border-left/bottom/top/right-color:transparent);
這樣,父元素沒有邊框顏色,這一邊的邊框也就無色,便形成了有缺口的圓,接下來只要設置旋轉動畫就OK了。(代碼就不貼出來了)
七、效果七

這個效果形狀的制作與上一個做法相同,只是這次多加了一個邊框,還是旋轉,就不多說了,直接上關鍵幀動畫的代碼。
{animation: rotate_bors 2s ease infinite;}//大圓
{animation: rotate_bors 1s ease infinite;}//小圓
@keyframes rotate_bors {
50%{
transform: rotateZ(180deg);
}
100%{
transform: rotateZ(360deg);
}
}
八、效果八

這個效果也很簡單,外部大圈怎么做就不多說了,里面的小圓,也只要改變大小就行了。
{animation: rotate_borw 1s linear infinite;}
@keyframes rotate_borw {
50%{
width: 15px;
height: 15px;
}
}
九、效果九

將小球全部設置為行內塊元素,給父元素text-align:center來使小球水平居中,通過設置行高,來使小球垂直居中。接下來通過關鍵幀動畫來改變小球的長寬、以及左右外邊距。
{animation: margin 1s linear infinite;}
@keyframes margin {
50%{
margin:0 10px;
width: 10px;
height: 10px;
}
}
十、效果十

依然將小球設為行內塊,只需水平居中即可,可以設置外邊距來調整小球之間的距離,通過關鍵幀來設置小球的translateY的值。(每個小球之間的延遲不必均分,差值可以減小)
{animation: trans 1.2s ease infinite;}
@keyframes trans {
50%{
opacity: 1;
transform: translateY(30px);
}
70%{
opacity: 1;
transform: translateY(30px);
}
100%{
opacity: 0;
transform: translateY(60px);
}
}
(未完待續)

