CSS彈跳動畫效果的實現(xiàn)方法
這是只用了一個div來做的小動畫,純粹利用CSS3的animation來完成,就像是一個正方形在地上彈跳,碰到地面的時候尖角還會壓縮變圓,陰影的部分也會隨著正方形升高而縮小,至于到底該怎么完成呢?讓我們繼續(xù)看下去。
利用偽元素
由于只使用了一個div,要同時達到正方形旋轉(zhuǎn)與陰影縮放的效果,這里必須使用兩個偽元素(before與after)來完成,嚴(yán)格來說,雖然只有一個div,但是卻是把這個div當(dāng)作外框,讓偽元素before作為旋轉(zhuǎn)的正方形,讓偽元素after作為陰影。
.box{
position:relative;
}
.box:before{
content:'';
position:absolute;
z-index:2;
top:60px;
left:50px;
width:50px;
height:50px;
background:#c00;
border-radius:2px;
transform: rotate(45deg);
}
.box:after{
content:'';
position:absolute;
z-index:1;
top:128px;
left:52px;
width:44px;
height:3px;
background:#eaeaea;
border-radius:100%;
}

CSS動畫
畫出正方形與陰影之后,再來就是要做動畫了,為了避免太過復(fù)雜,這里我們先不要旋轉(zhuǎn),先單純讓正方形上下跳動,然后陰影會放大縮小,下面的示例的動畫,又新增了20%與80%的keyframe,目的是為了讓接觸的時候角落才會變圓,不然就會變成剛開始移動時尖角就變圓,就會很怪異了。
.box:before{
content:'';
position:absolute;
z-index:2;
top:60px;
left:50px;
width:50px;
height:50px;
background:#c00;
border-radius:2px;
transform: rotate(45deg);
-webkit-animation:box .8s infinite ;
}
@-webkit-keyframes box{
0%{
top:50px;
}
20%{
border-radius:2px; /*從20%的地方才開始變形*/
}
50%{
top:80px;
border-bottom-right-radius:25px;
}
80%{
border-radius:2px; /*到80%的地方恢復(fù)原狀*/
}
100%{
top:50px;
}
}
.box:after{
content:'';
position:absolute;
z-index:1;
top:128px;
left:52px;
width:44px;
height:3px;
background:#eaeaea;
border-radius:100%;
-webkit-animation:shadow .8s infinite ;
}
@-webkit-keyframes shadow{
0%,100%{
left:54px;
width:40px;
background:#eaeaea;
}
50%{
top:126px;
left:50px; /*讓陰影保持在原位*/
width:50px;
height:7px;
background:#eee;
}
}

加入旋轉(zhuǎn)效果
了解原理之后,我們只要再加上旋轉(zhuǎn)的屬性,就可以達到彈跳起來的時候有旋轉(zhuǎn)的效果,不過這里又有用到一個小技巧,就是落下的時候是90度轉(zhuǎn)到45度,彈上去的時候從45旋轉(zhuǎn)到0度,然后在這一瞬間從0度變成90度(100%到0%),如此一來我們就會產(chǎn)生錯覺,感覺好像一直在旋轉(zhuǎn)了。
@-webkit-keyframes box{
0%{
top:50px;
transform: rotate(90deg); /**/
}
20%{
border-radius:2px;
}
50%{
top:80px;
transform: rotate(45deg);
border-bottom-right-radius:25px;
}
80%{
border-radius:2px;
}
100%{
top:50px;
transform: rotate(0deg);
}
}

舉一反三,我們也可以把角度反轉(zhuǎn),就會往另外一邊彈跳。

如果我們把動畫里頭添加linear,就會變成線性的連續(xù)方式喔。

總結(jié)
以上所述是小編給大家介紹的CSS彈跳動畫效果的實現(xiàn)方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
相關(guān)文章

CSS3 創(chuàng)建網(wǎng)頁動畫實現(xiàn)彈跳球動效果
這篇文章主要介紹了CSS3 創(chuàng)建網(wǎng)頁動畫實現(xiàn)彈跳球動效果,需要的朋友可以參考下2018-10-30
jQuery+css3實現(xiàn)不斷變色的彈跳球碰撞動畫特效源碼
這是一款基于jQuery+css3實現(xiàn)不斷變色的彈跳球碰撞動畫特效源碼。畫面上做彈性碰撞的小球不斷變換顏色,底部的擋板跟隨鼠標(biāo)左右移動,小球碰撞擋板可產(chǎn)生發(fā)光、變色等動畫2018-03-15
今天我們要來分享一款非常具有創(chuàng)意的CSS3 Loading動畫,這款CSS3 Loading動畫是一個跳動的小球和幾個滾動的小球組合而成,效果非常不錯。是一款獨具個性的Loading動畫特效2014-12-16




