如何用純 CSS 創作一個搖搖晃晃的 loader
效果預覽
線上演示按下右側的“點選預覽”按鈕可以在當前頁面預覽,點選連結可以全屏預覽。
https://codepen.io/comehope/pen/oyJvpe
可互動視訊
此視訊是可以互動的,你可以隨時暫停視訊,編輯視訊中的程式碼。
請用 chrome, safari, edge 開啟觀看。
https://scrimba.com/p/pEgDAM/cqwpQh7
原始碼下載
本地下載每日前端實戰系列的全部原始碼請從 github 下載:
https://github.com/comehope/front-end-daily-challenges
程式碼解讀
定義 dom,容器中包含一個子元素,子元素內是文字:
<div class="loader">
<span>Loading...</span>
</div>
居中顯示:
body {
margin: 0;
height: 100vh;
display: flex;
align-items: center;
justify-content: center;
background-color: black;
}
定義容器尺寸:
.loader {
width: 10em;
height: 10em;
font-size: 30px;
box-sizing: border-box;
}
設定文字樣式:
.loader span {
position: absolute;
color: white;
width: inherit;
height: inherit;
text-align: center;
line-height: 10em;
font-family: sans-serif;
}
畫出組成圓的頂部弧線:
.loader {
border-top: 0.3em solid hotpink;
border-radius: 50%;
}
用偽元素畫出組成圓的另外 2 條弧線:
.loader {
position: relative;
}
.loader::before,
.loader::after {
content: '';
position: absolute;
width: inherit;
height: inherit;
border-radius: 50%;
box-sizing: border-box;
top: -0.2em;
}
.loader::before {
border-top: 0.3em solid dodgerblue;
transform: rotate(120deg);
}
.loader::after {
border-top: 0.3em solid gold;
transform: rotate(240deg);
}
定義動畫效果:
@keyframes rotating {
50% {
transform: rotate(calc(180deg * var(--direction)));
}
100% {
transform: rotate(calc(360deg * var(--direction)));
}
}
把動畫效果應用到圓上:
.loader {
animation: rotating 2s ease-in-out infinite;
--direction: 1;
}
把動畫效果應用到文字上:
.loader span {
animation: rotating 2s linear infinite;
--direction: -1;
}
最後,隱藏可能超出視窗的內容:
body {
overflow: hidden;
}
大功告成!
原文地址:https://segmentfault.com/a/1190000015424389相關文章
- Android搖一搖、螢幕方向的監聽Android
- swift實現仿知乎搖一搖彈出框Swift
- iOS通過加速計計算搖一搖次數iOS
- Flutter 實現微信搖一搖的功能 Flutter 加速度感應Flutter
- 不會吧,這也行?iOS後臺鎖屏監聽搖一搖iOS
- 前端每日實戰:103# 影片演示如何用純 CSS 創作一隻監視眼前端CSS
- 前端每日實戰:158# 視訊演示如何用純 CSS 創作一個雨傘 toggle 控制元件前端CSS控制元件
- 和 transformjs 一起搖擺ORMJS
- HTML5 語音聊天 IM|仿微信語音介面|搖一搖效果HTML
- 眾創空間,中小型創業者搖籃創業
- html5版聊天室|仿微信語音|搖一搖|地圖定位HTML地圖
- webpack 搖樹處理Web
- 價格離譜的配件,與蘋果搖搖欲墜的奢侈品人設蘋果
- 用HTML5實現手機搖一搖功能你有做過嗎?你知道它的原理嗎?HTML
- 如何用CSS製作一個圓形放大鏡CSS
- 天體搖擺儀的工作原理
- Unity——EasyTouch搖桿外掛使用Unity
- 2-59. 製作可砍伐的樹木搖晃和倒下動畫動畫
- 3年後,《崩壞3》依然是無法動搖的神作
- 純HTML + CSS製作個人資料卡HTMLCSS
- 【canvas】搖桿操控飛船的動畫原理Canvas動畫
- 風雨飄搖中的高鑫零售
- Android joystick,安卓模擬搖桿Android安卓
- 趣玩Python——利用python搖身一變社會人Python
- R星:我的成功,源自我的搖滾核心
- 《寶可夢 劍/盾》:一次天平的搖擺,一場夢的破碎
- Angular 應用裡的搖樹優化 - tree shakingAngular優化
- 堅持“動態清零”不動搖
- WannaMine再升級! 搖身一變成為軍火商
- 如何用 css 畫一個心形CSS
- 純css製作loading動畫CSS動畫
- 樂搖婚慶--最美婚禮回憶錄
- 每日CSS_純CSS製作進度條CSS
- 純 CSS 打造一個模態(modal)框CSS
- 使用純css來建立一個滑塊CSS
- 為什麼內推成了遊戲人的搖錢樹?遊戲
- 穀粒joycon霍爾電磁搖桿釋出
- 當500萬隻能作為搖號的誠意金來臨時,你的想法是什麼?