CSS3動態月食效果詳解
本章節分享一段程式碼例項,它利用CSS3實現了動態的月食效果。
動畫其實比較簡單簡短,需要的朋友可以自行做一下分析,這裡就不多介紹了。
程式碼例項如下:
[HTML] 純文字檢視 複製程式碼執行程式碼<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style type="text/css"> *{ margin:0; padding:0; } body{ background-color: #000; } .moonback{ width:600px; height:600px; background-color:#000; margin:0 auto; position: relative; } .moonback::before{ content:","; display:block; position:absolute; left:200px; top:100px; width:200px; height:200px; background-color:#ff0; border-radius:100px; } .moonback::after{ content:" "; display:block; position:absolute; left:26px; top:0px; width:200px; height:200px; background-color:#000; border-radius:100px; animation:12s dog linear infinite; animation-fill-mode: forwards; } @-webkit-keyframes dog{ 0%{ left:27px; top:0px; } 100%{ left:399px; top:216px; } } @-moz-keyframes dog { 0%{ left:27px; top:0px; } 100%{ left:399px; top:216px; } } @keyframes dog{ 0%{ left:27px; top:0px; } 100%{ left:399px; top:216px; } } .star{ position:absolute; } .star::before{ content:"★"; display:block; position:absolute; left:10px; top:20px; width:auto; height:auto; color:#fff; transform:scale(0.5); animation:1s starlight linear infinite; animation-fill-mode: forwards; } .star::after{ content:"★"; display:block; position:absolute; left:40px; top:120px; width:auto; height:auto; color:#fff; transform:scale(0.5); animation: 2s starlight linear infinite; } @keyframes starlight{ 0%{ transform:scale(0.5); } 100%{ transform:scale(0.1); } } </style> </head> <body> <div class="content"> <div class="moonback"> <div class="star" style="top:20px;right:220px;"></div> <div class="star" style="top:50px;right:120px;"></div> <div class="star" style="top:190px;left:20px;"></div> <div class="star" style="top:220px;left:50px;"></div> </div> </div> </body> </html>
程式碼實現了我們的要求,下面介紹一下效果的實現過程。
一.程式碼註釋:
[CSS] 純文字檢視 複製程式碼*{ margin:0; padding:0; } body{ background-color: #000; }
對內編劇和外邊距進行簡單初始化,統一設定為0。
然後將body的背景顏色設定為黑色,也就是夜晚的天空效果。
[CSS] 純文字檢視 複製程式碼.moonback{ width:600px; height:600px; background-color:#000; margin:0 auto; position: relative; }
設定效果的真正容器,背景也是黑色,以便於和整個body的背景融合在一起。
通過margin:0 auto將其設定為水平居中。
position: relative將其設定為相對定位,作用會在後面介紹。
[CSS] 純文字檢視 複製程式碼.moonback::before{ content:","; display:block; position:absolute; left:200px; top:100px; width:200px; height:200px; background-color:#ff0; border-radius:100px; }
通過偽元素選擇器,新增那個黃色的月亮。
新建立的偽元素採用絕對定位,又因為它的父元素是相對定位,所以它的定位參考物件是父元素。
[CSS] 純文字檢視 複製程式碼.moonback::after{ content:" "; display:block; position:absolute; left:26px; top:0px; width:200px; height:200px; background-color:#000; border-radius:100px; animation:12s dog linear infinite; animation-fill-mode: forwards; }
採用偽元素選擇器新增那個黑色的運動的陰影(天文知識不好,不知道月食的原理是什麼)。
新建立的偽元素採用絕對定位,又因為它的父元素是相對定位,所以它的定位參考物件是父元素。
最後並且設定了動畫執行效果,具體知識可以參閱相關閱讀。
[CSS] 純文字檢視 複製程式碼@keyframes dog{ 0%{ left:27px; top:0px; } 100%{ left:399px; top:216px; } }
控制動畫的位移,關於@keyframes可以參閱後面的相關閱讀。
[CSS] 純文字檢視 複製程式碼.star{ position:absolute; } .star::before{ content:"★"; display:block; position:absolute; left:10px; top:20px; width:auto; height:auto; color:#fff; transform:scale(0.5); animation:1s starlight linear infinite; animation-fill-mode: forwards; } .star::after{ content:"★"; display:block; position:absolute; left:40px; top:120px; width:auto; height:auto; color:#fff; transform:scale(0.5); animation: 2s starlight linear infinite; } @keyframes starlight{ 0%{ transform:scale(0.5); } 100%{ transform:scale(0.1); } }
上面程式碼製作星星閃爍效果。
也是通過animation動畫控制星星的縮放,以實現閃爍。
二.相關閱讀:
(1).::before可以參閱CSS 偽物件選擇符before/E::before一章節。
(2).border-radius可以參閱CSS3實現圓角效果一章節。
(3).animation可以參閱CSS3 animation用法一章節。
(4).animation-fill-mode可以參閱animation-fill-mode一章節。
(5).相對定位參閱CSS position:relative 相對定位一章節。
(6).絕對定位參閱CSS position:absolute 絕對定位一章節。
相關文章
- JavaScript 動態進度條效果詳解JavaScript
- css3過渡效果詳解CSSS3
- CSS3對勾效果詳解CSSS3
- css3氣泡動態上升效果CSSS3
- CSS3動態大白效果程式碼CSSS3
- CSS3動態餅狀圖效果CSSS3
- JavaScript動態圓形鐘錶效果詳解JavaScript
- CSS3開關門效果詳解CSSS3
- CSS3打字效果詳解CSSS3
- CSS3邊框動態環繞效果CSSS3
- CSS3環繞動態邊框效果CSSS3
- css3動態圓形鐘錶效果CSSS3
- CSS3叉號按鈕效果詳解CSSS3
- CSS3文字動態填充背景效果CSSS3
- css3動畫效果抖動解決CSSS3動畫
- CSS3旋轉大風車效果詳解CSSS3
- CSS3五角星效果詳解CSSS3
- CSS3扇形旋轉效果詳解CSSS3
- CSS3撥打電話動態圖示效果CSSS3
- css3實現線條環形動態運動效果CSSS3
- jQuery抖動效果詳解jQuery
- CSS3郵票鋸齒邊框效果詳解CSSS3
- CSS3 文字字型顏色動態漸變效果CSSS3
- jquery和css3實現的動態時鐘效果jQueryCSSS3
- css3實現邊框具有動態環形遮罩效果CSSS3遮罩
- css3實現的動態大白效果程式碼例項CSSS3
- CSS3小球靜態環繞效果CSSS3
- 9種純CSS3人物資訊卡片動態展示效果CSSS3
- JDK動態代理詳解JDK
- Mybatis 動態 SQL 詳解MyBatisSQL
- CSS3 div水平運動效果CSSS3
- CSS3矩形左右擺動效果CSSS3
- css3小球上下移動效果CSSS3
- css3實現動態摺疊生成立方體旋轉效果CSSS3
- css3實現的滑鼠懸浮立體動態按鈕效果CSSS3
- css3實現的水平立體動態導航選單效果CSSS3
- JavaScript自動更新時間效果詳解JavaScript
- jquery實現滑動門效果詳解jQuery