摘要:舉一反三,我們也可以把角度反轉(zhuǎn),就會往另外一邊彈跳。如果我們把動畫里頭添加,就會變成線性的連續(xù)方式喔。
這是只用了一個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ù)方式喔。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/114565.html
摘要:舉一反三,我們也可以把角度反轉(zhuǎn),就會往另外一邊彈跳。如果我們把動畫里頭添加,就會變成線性的連續(xù)方式喔。 這是只用了一個div來做的小動畫,純粹利用CSS3的animation來完成,就像是一個正方形在地上彈跳,碰到地面的時候尖角還會壓縮變圓,陰影的部分也會隨著正方形升高而縮小,至于到底該怎么完成呢?讓我們繼續(xù)看下去。 利用偽元素 由于只使用了一個div,要同時達到正方形旋轉(zhuǎn)與陰影縮放的...
摘要:那就是重力加速度的表現(xiàn)以及彈力球與空氣,地面所產(chǎn)生的摩擦力的表現(xiàn)。彈力球下落時,由于重力加速度的原因,所以速度會越來越大,往上跳時速度會越來越小直至。 作者:陳大魚頭 github: KRISACHAN 在上一節(jié)中, 不走心 地畫了一些 CSS圖案 ,本節(jié)就繼續(xù)不走心地 畫動畫 。 CSS的動畫屬性 在CSS中,animation 、 transition 跟 transform...
摘要:所以就說說吧優(yōu)點可自定義動畫效果,支持隊列動效支持回調(diào)函數(shù)支持動畫的,等等功能缺點缺少自定義特效文檔比較少使用遇到的小問題默認(rèn)不是勻速的,需要設(shè)置詳細整理待續(xù) 在最近一段時間的工作里,常常用到動畫,我主要接觸了三個 animate.cssanimevelocity 下面分析一下他們的優(yōu)缺點 animate.css 優(yōu)點:animate.css主要是使用css實現(xiàn)動畫效果,目前已經(jīng)有幾十...
摘要:一條正在繪制中的三次方貝塞爾曲線因為該曲線由四個點形成,我們將其稱為三次方貝塞爾曲線,而不是二次方曲線三個點或四次方曲線五個點。現(xiàn)在終于可以將貝塞爾曲線收入囊中了,也已經(jīng)對這 作者:Nicolas(滬江前端開發(fā)工程師)本文原創(chuàng)翻譯,轉(zhuǎn)載請注明作者及出處。 各位,趕緊綁住自己并緊緊抓牢了,因為當(dāng)你掌握了特別有趣但又復(fù)雜的CSS時序函數(shù)之后,你將會真正體驗到豎起頭發(fā)般的興奮感受。 好吧,本...
閱讀 2306·2023-04-25 14:17
閱讀 1515·2021-11-23 10:02
閱讀 2169·2021-11-23 09:51
閱讀 872·2021-10-14 09:49
閱讀 3384·2021-10-11 10:57
閱讀 2921·2021-09-24 09:47
閱讀 3045·2021-08-24 10:00
閱讀 2298·2019-08-29 18:46