搜尋
首頁web前端css教學帶有 Orbit CSS 的太陽系

帶有 Orbit CSS 的太陽系

Sep 05, 2024 am 06:00 AM

在本教學中,您將學習如何使用 HTML、CSS 和 Orbit CSS 框架 建立動畫太陽系。受到我在 Dev.to 上看到的多樣化且富有創意的太陽系視覺化的啟發,我認為在宇宙中再添加一個會很棒嗎? .

免責聲明:該項目是我們太陽系的簡化表示,包含主要行星(不包括矮行星),並非旨在進行精確的天文模擬。

第 1 步:項目設置

首先建立一個 HTML 文件,您將在其中插入太陽系的程式碼。另外,在 HTML 文件的頭部連結 Orbit CSS 檔案。



   <meta charset="UTF-8">
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   <title>The Solar System</title>
   <link rel="stylesheet" href="https://unpkg.com/@zumer/orbit@latest/dist/orbit.css">


   <div class="bigbang">
   <!-- Solar system here -->
   </div>


或者,您可以使用 Codepen Orbit 入門範本

第 2 步:太陽系的 HTML 結構

在 .bigbang 類別的 div 中,我們開始加入代表行星、行星軌道和衛星的元素。為此,我們將使用一些 Orbit 元素。

<div class="bigbang">
  <div class="gravity-spot from-3x">
    <div class="orbit-0">
      <div class="satellite sun grow-3x"></div>
    </div>
    <div class="orbit-1">
      <div class="satellite mercury shrink-60"></div>
    </div>
  </div>
</div>

在上面的程式碼中,.bigbang 類別是我們專案的起源。在其中,我們加入了一個代表引力中心的 .gravity-spot 和代表引力中心的軌道 .orbit-0。之後,我們加入了 .satellite 和 .sun 來展示我們的太陽。接下來,我們創建了 .orbit-1,它是一個靠近中心、半徑較小的軌道。我們在裡面放了水星。

請注意,有一些 Orbit 實用程式類,例如 from-3x、.grow-3x 和 Shrink-60。它們用於調整徑向佈局和元素大小。例如,.from-3x 表示軌道將以三個軌道長度的偏移量開始。 .grow-3x 表示太陽的軌道大小為三個軌道,.shrink-60 表示水星的軌道大小為 40%。

完成所有軌道和行星後,我們將得到這個:

The Solar System with Orbit CSS

增加衛星、光環和小行星
有些行星,如地球、火星、木星、土星、天王星和海王星,有衛星。這些可以放入具有 .gravity-spot 類別的元素內以模擬地球的重力。請記住,我們只會創建一些衛星,而不是全部。

<div class="orbit-3">
    <div class="satellite earth">
       <div class="gravity-spot">
          <div class="orbit-1 shrink-30 ">
            <div class="satellite shrink-70 moon"></div>
          </div>
       </div>
    </div>
</div>

在這裡,我們在地球上創建了月球,並使用了一些實用程式類別來調整佈局和大小。

現在是時候為土星和海王星添加光環了。

<div class="orbit-14">
   <div class="satellite neptune grow-0.1x">
      <div class="gravity-spot ring">
         <div class="orbit-1 shrink-30"></div>
      </div>
    </div>
</div>

最後,我們加入了許多小行星來重建小行星帶

<div class="orbit-6 asteroid-belt">
   <div class="satellite shrink-90"></div>
   <div class="satellite shrink-70"></div>
   <div class="satellite shrink-80"></div>
   <div class="satellite shrink-90"></div>
   
</div>
<div class="orbit-6 from-40 asteroid-belt"></div>
<div class="orbit-6 from-20 asteroid-belt"></div>

這裡我們使用一個新的實用程式類別:from-*,它允許設定起始角度並產生隨機小行星的幻覺。

加入所有衛星、光環和小行星後,我們得到:

The Solar System with Orbit CSS

第三步:設計太陽系的樣式

這裡我們需要一些太陽和行星的真實影像。起初,我嘗試移動這些圖像來模擬內部旋轉,但動畫背景位置屬性對於 CPU 來說非常昂貴,因此我決定使用動畫 gif 來避免炸毀 CPU 並保持流暢的動畫。在 Orbit 中,有一個名為 .capsule 的特殊類,在衛星內部使用,以添加豐富的內容。

地球

    <div class="orbit-3">
      <div class="satellite earth">
        <div class="capsule ">
          <div class="surface"></div>
        </div>
      </div>
    </div>
.earth .surface {
  background: url("https://media.tenor.com/0we9sWcmUtYAAAAi/wingedratsecrettag-earth.gif");
  background-size: auto 100%;
}

** 3D 效果 **

為了產生 3D 幻覺,我們使用一些 css 漸層:

.sun:before,
.surface:before {
  content: "";
  position: absolute;
  top: 1%;
  left: 5%;
  width: 90%;
  height: 90%;
  border-radius: 50%;
  background: radial-gradient(
    circle at 50% 0px,
    yellow,
    rgba(255, 255, 255, 0) 58%
  );
  -webkit-filter: blur(5px);
  z-index: 2;
}
.sun:after,
.surface:after {
  content: "";
  position: absolute;
  border-radius: 50%;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background: radial-gradient(
    circle at 50% 30%,
    rgba(245, 237, 48, 0),
    rgba(200, 190, 20, 0.2) 50%,
    #575300 100%
  );
}

放置所有影像後,我們得到:

The Solar System with Orbit CSS

第四步:太陽系動畫

使用 CSS 動畫使行星及其衛星繞太陽運行。首先創建一個@keyframe動畫:

@keyframes rotate {
  to {
    rotate: 360deg;
  }
}

然後為每個行星和太陽添加動畫屬性。請記住,有必要在行星 .capsule 類別上包含「計數器」動畫,以使其穩定。請注意,由於太陽僅繞其軸旋轉,因此無需包含 .capsule 和“計數器”動畫。

.earth {
  --t: 6315.79ms;
  animation: rotate var(--t, 20s) linear reverse infinite;
}

.capsule {
  animation: rotate var(--t, 20s) linear infinite;
}

現在我們有了一個動畫的 2D 太陽系:

The Solar System with Orbit CSS

第五步:透視

為了更真實,我們可以使用 .bigbang 的透視圖和太陽、月亮軌道和行星的 trasnform:rotateX 屬性來產生偽 3D 效果。

.bigbang {
  perspective: 150px;
  perspective-origin: 50% 100%;
}

.gravity-spot {
  transform: rotateX(10deg);
   transform-style: preserve-3d;
}

.orbit-0 {
  transform: rotateX(-5deg);
}

恭喜! ! 這是我們太陽系的最終表現。

結論

本教學指導您使用 HTML、CSS 和 Orbit CSS 框架建立動畫太陽系。我希望你覺得它有趣又有趣。 Orbit 旨在創建幾乎任何類型的徑向介面,所以請看一下,如果您用它創建了一些東西,請告訴我!

學分:

  • 軌道倉庫
  • 開發文章:CSS 中的太陽系
  • 開發文章:使用 Threejs 的 Solar System
  • CSS動畫:球體

以上是帶有 Orbit CSS 的太陽系的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
@KeyFrames vs CSS過渡:有什麼區別?@KeyFrames vs CSS過渡:有什麼區別?May 14, 2025 am 12:01 AM

@keyframesandCSSTransitionsdifferincomplexity:@keyframesallowsfordetailedanimationsequences,whileCSSTransitionshandlesimplestatechanges.UseCSSTransitionsforhovereffectslikebuttoncolorchanges,and@keyframesforintricateanimationslikerotatingspinners.

使用頁面CMS進行靜態站點內容管理使用頁面CMS進行靜態站點內容管理May 13, 2025 am 09:24 AM

我知道,我知道:有大量的內容管理系統選項可用,而我進行了幾個測試,但實際上沒有一個是一個,y&#039;知道嗎?怪異的定價模型,艱難的自定義,有些甚至最終成為整個&

鏈接HTML中CSS文件的最終指南鏈接HTML中CSS文件的最終指南May 13, 2025 am 12:02 AM

鏈接CSS文件到HTML可以通過在HTML的部分使用元素實現。 1)使用標籤鏈接本地CSS文件。 2)多個CSS文件可通過添加多個標籤實現。 3)外部CSS文件使用絕對URL鏈接,如。 4)確保正確使用文件路徑和CSS文件加載順序,優化性能可使用CSS預處理器合併文件。

CSS Flexbox與網格:全面評論CSS Flexbox與網格:全面評論May 12, 2025 am 12:01 AM

選擇Flexbox還是Grid取決於佈局需求:1)Flexbox適用於一維佈局,如導航欄;2)Grid適合二維佈局,如雜誌式佈局。兩者在項目中可結合使用,提升佈局效果。

如何包括CSS文件:方法和最佳實踐如何包括CSS文件:方法和最佳實踐May 11, 2025 am 12:02 AM

包含CSS文件的最佳方法是使用標籤在HTML的部分引入外部CSS文件。 1.使用標籤引入外部CSS文件,如。 2.對於小型調整,可以使用內聯CSS,但應謹慎使用。 3.大型項目可使用CSS預處理器如Sass或Less,通過@import導入其他CSS文件。 4.為了性能,應合併CSS文件並使用CDN,同時使用工具如CSSNano進行壓縮。

Flexbox vs Grid:我應該學習兩者嗎?Flexbox vs Grid:我應該學習兩者嗎?May 10, 2025 am 12:01 AM

是的,youshouldlearnbothflexboxandgrid.1)flexboxisidealforone-demensional,flexiblelayoutslikenavigationmenus.2)gridexcelstcelsintwo-dimensional,confffferDesignssignssuchasmagagazineLayouts.3)blosebothenHancesSunHanceSlineHancesLayOutflexibilitibilitibilitibilitibilityAnderibilitibilityAndresponScormentilial anderingStruction

軌道力學(或我如何優化CSS KeyFrames動畫)軌道力學(或我如何優化CSS KeyFrames動畫)May 09, 2025 am 09:57 AM

重構自己的代碼看起來是什麼樣的?約翰·瑞亞(John Rhea)挑選了他寫的一個舊的CSS動畫,並介紹了優化它的思維過程。

CSS動畫:很難創建它們嗎?CSS動畫:很難創建它們嗎?May 09, 2025 am 12:03 AM

CSSanimationsarenotinherentlyhardbutrequirepracticeandunderstandingofCSSpropertiesandtimingfunctions.1)Startwithsimpleanimationslikescalingabuttononhoverusingkeyframes.2)Useeasingfunctionslikecubic-bezierfornaturaleffects,suchasabounceanimation.3)For

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中