CSS3建立簡單的網頁動畫–實現彈跳球動
基礎準備
對於這個實現,我們需要一個簡單的 div
,並且樣式類名為 ball
:
HTML 程式碼:
<div class="ball"></div>
我們將使用 Flexbox 佈局,把球放到頁面中間,尺寸為 100px * 100px,背景色為橘黃色。
CSS 程式碼:
body {
display: flex; /* 使用Flex佈局 */
justify-content: center; /* 水平居中 */
}
.ball {
width: 100px;
height: 100px;
border-radius: 50%; /* 把正方形變成圓形*/
background-color: #FF5722; /* 設定顏色為橙色*/
}
建立 Keyframe(關鍵幀)
Keyframe(關鍵幀) 用於 CSS 動畫,以便我們完全控制動畫。建立 Keyframe(關鍵幀) 的樣式非常簡單。我們使用關鍵字 @keyframes
,在後面跟動畫名稱:
CSS 程式碼:
@keyframes nameOfAnimation {
/* 程式碼 */
}
在這個示例中,我們把 keyframe(關鍵幀) 取名為 bounce。在 Keyframe 中,用 from 和 to 關鍵字來指定動畫開始點和結尾點的 CSS 樣式。
CSS 程式碼:
@keyframes bounce {
from { /* 開始 */ }
to { /* 結束 */ }
}
很簡單是不是? 最後一步,我們可以新增我們的開始點和結尾點的 CSS 樣式。為了建立反彈效果,我們將只是改變球的位置。transform 允許我們修改給定元素的座標。以下是最終的 keyframe(關鍵幀) :
CSS 程式碼:
@keyframes bounce {
from { transform: translate3d(0, 0, 0); }
to { transform: translate3d(0, 200px, 0); }
}
我們使用 transform 讓球沿著三維軸平移,translate3D 函式需要 3 個輸入引數,即 (x, y, z) 。 因為我們想讓球上下跳動,我們只需要沿著 y 軸進行平移。因此,動畫結束點(即 to 中樣式)的 y 值變成了 200px 。
執行 Keyframe(關鍵幀)
現在 @keyframe
已經建立了,是時候讓它執行起來了!回到 .ball{} css
並新增以下行程式碼:
CSS 程式碼:
.ball {
/* ... */
animation: bounce 0.5s;
animation-direction: alternate;
animation-iteration-count: infinite;
}
解釋一下這三行程式碼:
告訴 ball 元素使用我們的 keyframe(關鍵幀) 規則反彈。 設定完成動畫的時間長度為 .5 秒。
完成後,動畫反方向執行(反轉)。
無限次地執行動畫。
真棒,到目前為止。 離我們想要的已經很近了,但還不完美:
它看起來不像一個彈跳的球。那是因為我們沒有為動畫設定速度曲線,預設會被設定為 ease。意思是動畫的速度剛開始慢,中間變快,快結束的時候又變慢。不幸的是,這不是一個彈跳球的理想選擇。幸運的是,我們可以使用 Math 來定製這個 速度曲線!
進入太多的細節,你可以使用 bezier(貝塞爾曲線) 來指定自定義動畫時間。以下是附加的程式碼:
CSS 程式碼:
.ball {
/* ... */
animation: bounce 0.5s cubic-bezier(.5,0.05,1,.5);
}
當然這是用 CSS Animations(動畫) 和 Keyframes(關鍵幀) 建立的最簡單的動畫效果.
這裡推薦一下我的前端學習交流,裡面都是學習前端的,如果你想製作酷炫的網頁,想學習程式設計。自己整理了一份2018最全面前端學習資料,從最基礎的HTML+CSS+JS【炫酷特效,遊戲,外掛封裝,設計模式】到移動端HTML5的專案實戰的學習資料都有整理,送給每一位前端小夥伴,有想學習web前端的,或是轉行,或是大學生,還有工作中想提升自己能力的,正在學習的小夥伴歡迎加入學習。
相關文章
- css3實現顫動的動畫CSSS3動畫
- 讓動畫實現更簡單,Flutter 動畫簡易教程!動畫Flutter
- 使用canvas實現簡單動畫Canvas動畫
- CSS3實現流星動畫CSSS3動畫
- 前端動畫效果實現的簡單比較前端動畫
- css3實現逐幀動畫CSSS3動畫
- 簡單的網頁彈窗陷阱網頁
- css3動畫實現數字動態增加CSSS3動畫
- css3實現動畫閃爍效果CSSS3動畫
- Threejs實現滴滴官網首頁地球動畫JS動畫
- anime.js 網頁動畫庫,輕鬆實現網頁數字滾動效果JS網頁動畫
- H5移動端彈幕動畫實現H5動畫
- css3實現動畫有幾種方式?CSSS3動畫
- css3 動畫(三)animation 簡介CSSS3動畫
- CSS3實現王者匹配時的粒子動畫效果CSSS3動畫
- flutter Lottie 動畫引導頁的實現Flutter動畫
- 原生JS實現隨著滑鼠滾動到元素位置觸發對應css3動畫,簡單易用滾動監測JSCSSS3動畫
- canvas簡單的畫布動畫 - KaiqisanCanvas動畫AI
- JavaScript簡單的動畫效果JavaScript動畫
- 簡單的動畫 (numpy & PySimpleGUI)動畫GUI
- Web 頁面如何實現動畫效果Web動畫
- 使用css3實現小車行駛的動畫效果CSSS3動畫
- django 網站實現簡單分頁Django網站
- 記錄---前端實現畫中畫超簡單,讓網頁飛出瀏覽器前端網頁瀏覽器
- css3實現側邊滑動選單CSSS3
- 直播系統搭建,簡單實現Android應用的啟動頁Android
- CSS3動畫之逐幀動畫CSSS3動畫
- JavaScript 簡單動畫效果JavaScript動畫
- 簡單CSS實現閃爍動畫(+1白話講解)CSS動畫
- 利用SVG和css3實現炫酷的邊框動畫SVGCSSS3動畫
- Web前端培訓教程:CSS3動畫怎麼實現的Web前端CSSS3動畫
- 10種CSS3實現的loading動畫,挑一個走吧?CSSS3動畫
- 基於 HTML5 實現的簡單雲動畫和景物描述HTML動畫
- 直播系統中網頁類似app頁面切換動畫的實現方式網頁APP動畫
- css3實現一個寬高未知的div的slidedown動畫CSSS3IDE動畫
- 鴻蒙HarmonyOS實戰-ArkUI動畫(彈簧曲線動畫)鴻蒙UI動畫
- Flutter實戰動畫番外篇-翻頁效果實現Flutter動畫
- Android View篇之啟動頁倒數計時動畫的實現AndroidView動畫