做一個太陽系八大行星的運轉動畫,不包括行星的衛星,所有行星圍繞太陽公轉,行星采用純色,暫時沒有自轉。
動畫中包括:太陽及各行星,運行軌道,行星公轉動畫。
先畫好草圖,設計好大小和位置,根據公轉周期計算好動畫執行的時間。
html的結構:
一個class為solarsys的div,作為太陽系容器元素,該div的position為relative。
行星軌道和行星都用div,position為absolute。
容器用relative和內部元素采用absolute的定位方式,比較簡單的能實現效果,缺點就是大小是固定的。
<div class="solarsys"> <!--太陽--> <div class='sun'></div> <!--水星軌道--> <div class='mercuryOrbit'></div> <!--水星--> <div class='mercury'></div> <!--金星軌道--> <div class='venusOrbit'></div> <!--金星--> <div class='venus'></div> <!--地球軌道--> <div class='earthOrbit'></div> <!--地球--> <div class='earth'></div> <!--火星軌道--> <div class='marsOrbit'></div> <!--火星--> <div class='mars'></div> <!--木星軌道--> <div class='jupiterOrbit'></div> <!--木星--> <div class='jupiter'></div> <!--土星軌道--> <div class='saturnOrbit'></div> <!--土星--> <div class='saturn'></div> <!--天王星軌道--> <div class='uranusOrbit'></div> <!--天王星--> <div class='uranus'></div> <!--海王星軌道--> <div class='neptuneOrbit'></div> <!--海王星--> <div class='neptune'></div> </div>
太陽系容器div的css:
定寬,定高,relative定位,頁面內劇中對齊。
.solarsys{ width: 800px; height: 800px;; position: relative; margin: 0 auto; background-color: #000000; padding: 0; transform: scale(1); }
太陽div的css:
按照設計的大小和位置,設定寬高,left,top。
設定顏色。
通過把boder-radius生成50%,把一個正方形變成圓形。
通過box-shadow的4層顏色設置實現太陽光暈。
.sun { left:357px; top:357px; height: 90px; width: 90px; background-color: rgb(248,107,35); border-radius: 50%; box-shadow: 5px 5px 10px rgb(248,107,35), -5px -5px 10px rgb(248,107,35), 5px -5px 10px rgb(248,107,35), -5px 5px 10px rgb(248,107,35); position: absolute; margin: 0; }
行星軌道div的css:
假設是水星軌道。
按照設計的大小和位置,設定寬高,left,top。
背景色透明。
通過把boder-radius生成50%,把一個正方形變成圓形。
boder的類型設成虛線。
boder的顏色設成灰色。
.mercuryOrbit { left:342.5px; top:342.5px; height: 115px; width: 115px; background-color: transparent; border-radius: 50%; border-style: dashed; border-color: gray; position: absolute; border-width: 1px; margin: 0px; padding: 0px; }
相信看了這些案例你已經掌握了方法,更多精彩請關注Gxl網其它相關文章!
相關閱讀:
關于HTML操作滾動條的方法
html如何制作細線表格
html塊級標簽,行內標簽,行內塊標簽的顯示模式有哪些
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com