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

帶有 Orbit CSS 的太陽系

Sep 05, 2024 am 06:00 AM

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

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

第 1 步:項目設置

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

<!DOCTYPE html>
<html lang="en">
<head>
   <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">
</head>
<body>
   <div class="bigbang">
   <!-- Solar system here -->
   </div>
</body>
</html>
登入後複製

或者,您可以使用 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

熱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

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

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1671
14
CakePHP 教程
1428
52
Laravel 教程
1331
25
PHP教程
1276
29
C# 教程
1256
24
靜態表單提供商的比較 靜態表單提供商的比較 Apr 16, 2025 am 11:20 AM

讓我們嘗試在這裡造成一個術語:“靜態表單提供商”。你帶上html

使Sass更快的概念證明 使Sass更快的概念證明 Apr 16, 2025 am 10:38 AM

在一個新項目開始時,Sass彙編發生在眼睛的眨眼中。感覺很棒,尤其是當它與browsersync配對時,它重新加載

每周平台新聞:HTML加載屬性,主要的ARIA規格以及從iframe轉移到Shadow dom 每周平台新聞:HTML加載屬性,主要的ARIA規格以及從iframe轉移到Shadow dom Apr 17, 2025 am 10:55 AM

在本週的平台新聞綜述中,Chrome引入了一個用於加載的新屬性,Web開發人員的可訪問性規範以及BBC Move

帶有HTML對話框元素的一些動手 帶有HTML對話框元素的一些動手 Apr 16, 2025 am 11:33 AM

這是我第一次查看HTML元素。我已經意識到了一段時間,但是尚未將其旋轉。它很酷,

紙張形式 紙張形式 Apr 16, 2025 am 11:24 AM

購買或建造是技術的經典辯論。自己構建東西可能會感覺更便宜,因為您的信用卡賬單上沒有訂單項,但是

'訂閱播客”鏈接應在哪裡? '訂閱播客”鏈接應在哪裡? Apr 16, 2025 pm 12:04 PM

有一段時間,iTunes是播客中的大狗,因此,如果您將“訂閱播客”鏈接到喜歡:

託管您自己的非JavaScript分析的選項 託管您自己的非JavaScript分析的選項 Apr 15, 2025 am 11:09 AM

有很多分析平台可幫助您跟踪網站上的訪問者和使用數據。也許最著名的是Google Analytics(廣泛使用)

See all articles