這個網頁對一個具有夜空、星星、月亮和流星視覺效果的 HTML/CSS/JavaScript 檔案進行了詳細解析。
這個網頁使用了以下三種核心技術:
| 語法 | 用途 | 說明 |
|---|---|---|
| HTML | 結構 (Structure) | 定義網頁內容的框架 (如標題、容器)。 |
| CSS | 特效與樣式 (Styling & Animation) | 負責所有視覺效果,包括背景漸層、月亮樣式、星星和流星的動畫定義。 |
| JavaScript (JS) | 行為與動態 (Behavior & Dynamic Control) | 負責在網頁中 動態創建 數百顆星星,並 循環控制 流星的出現和軌跡。 |
| 標籤 | 語法範例 | 用途說明 |
|---|---|---|
<!DOCTYPE html> | <!DOCTYPE html> | 設定文件類型為 HTML5。 |
<html> | <html lang="zh-TW"> | 網頁根元素,設定網頁的語言。 |
<head> | <head>...</head> | 包含網頁的不可見資訊 (標題、樣式、設定)。 |
<body> | <body>...</body> | 包含網頁的所有可見內容 (標題、星星容器、腳本)。 |
<meta> | <meta charset="UTF-8"> | 設定字符編碼為 UTF-8,防止亂碼。 |
<title> | <title>星空</title> | 設定瀏覽器標籤頁上的標題。 |
<style> | <style>...</style> | 嵌入 CSS 樣式程式碼。 |
<script> | <script>...</script> | 嵌入或執行 JavaScript 程式碼。 |
| 標籤 | 語法範例 | 用途說明 |
|---|---|---|
<h1> | <h1>Hello World</h1> | 頁面主標題。 |
<div> | <div class="moon"> | 通用的區塊容器。 在程式碼中用於創建 月亮、星星容器、流星,是實現特效的主要骨架。 |
<a> | <a href="...">...</a> | 超連結,用於底部的 GitHub 連結。 |
使用了徑向漸變 (radial-gradient) 創造了由深到淺的夜空效果:
背景的靜態星星是通過 JavaScript 生成,並搭配 CSS 關鍵幀動畫 (@keyframes) 實現持續閃爍:
使用 @keyframes shoot 控制流星的 旋轉 和 位移:
利用 多重陰影 創造發光效果:
text-shadow: 0 0 10px #fff, 0 0 20px #00f, ...;box-shadow: 0 0 10px #fff, 0 0 20px #f9f9f9;JS 在這個網頁中扮演了 動態生成 和 無限循環 的關鍵角色,實現了高效能的動畫效果。
JS 使用 document.createElement('div') 循環創建 150 個 <div class="star"> 元素,並為每個星星隨機設定屬性:
Math.random() * 100 設置 left 和 top (以 vw / vh 為單位)。width 和 height。animationDuration (速度) 和 animationDelay (錯開閃爍時間)。為了實現流星不斷劃過,JS 採用了高效的 監聽動畫結束 做法:
NUM_SHOOTING_STARS = 4)。animationend 事件。resetShootingStar(this) 函式,隨機設定新的起點和速度,並強制瀏覽器重繪 (offsetHeight),從而重新啟動 CSS 劃過動畫。