【動畫消消樂|CSS】085.HTML+CSS實現自定義簡易過渡動畫
阿新 • • 發佈:2021-08-16
前言
Hello!小夥伴!
非常感謝您閱讀海轟的文章,倘若文中有錯誤的地方,歡迎您指出~
自我介紹 ଘ(੭ˊᵕˋ)੭
暱稱:海轟
標籤:程式猿|C++選手|學生
簡介:因C語言結識程式設計,隨後轉入計算機專業,有幸拿過國獎、省獎等,已保研。目前正在學習C++/Linux(真的真的太難了~)
學習經驗:紮實基礎 + 多做筆記 + 多敲程式碼 + 多思考 + 學好英語!
【動畫消消樂】 平時學習生活比較枯燥,無意之間對一些網頁、應用程式的過渡/載入動畫產生了濃厚的興趣,想知道具體是如何實現的? 便在空閒的時候學習下如何使用css實現一些簡單的動畫效果,文章僅供作為自己的學習筆記,記錄學習生活,爭取理解動畫的原理,多多“消滅”動畫!
效果展示
Demo程式碼
HTML
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="style.css"> <title>Document</title> </head> <body> <section><span></span></section> </body> </html>
CSS
html, body { margin: 0; height: 100%; } body { display: flex; justify-content: center; align-items: center; background: #222f3e; } section { width: 650px; height: 300px; padding: 10px; position: relative; display: flex; align-items: center; justify-content: center; border: 2px solid white; } span { width: 100%; height: 10px; display: inline-block; position: relative; } span::after { content: ''; width: 96px; height: 10px; background: white; position: absolute; top: 0; left: 0; animation: loading 2s ease-in-out infinite alternate; } @keyframes loading { 0% { left: 0; transform: translateX(0%) } 100% { left: 100%; transform: translateX(-100%) } }
原理詳解
步驟1
使用一個span標籤
<span></span>
設定為
- 寬度100%
- 高度10px
- 相對定位
- 背景色:紅色
span {
width: 100%;
height: 10px;
position: relative;
background-color: red;
}
效果圖如下:
步驟2
使用span::after
設定為
- 寬度96px
- 高度:10px
- 背景色:白色
- 絕對定位(top: 0; left: 0;)
span::after {
content: '';
width: 96px;
height: 10px;
background: white;
position: absolute;
top: 0;
left: 0;
}
效果圖如下:
步驟3
為span::after新增動畫
效果為
- 從左移動至最右端 再返回
span::after {
animation: loading 2s ease-in-out infinite alternate;
}
@keyframes loading {
0% {
left: 0;
transform: translateX(0%)
}
100% {
left: 100%;
transform: translateX(-100%)
}
}
效果圖如下:
步驟4
註釋掉span的背景色
span {
/* background-color: red; */
}
得到最終效果圖:
結語
文章僅作為學習筆記,記錄從0到1的一個過程
希望對您有所幫助,如有錯誤歡迎小夥伴指正~
我是 海轟ଘ(੭ˊᵕˋ)੭
如果您覺得寫得可以的話,請點個贊吧
謝謝支援❤️