首頁 web前端 css教學 使用 HTML、CSS 和 JavaScript 建立浮動粒子霓虹燈效果

使用 HTML、CSS 和 JavaScript 建立浮動粒子霓虹燈效果

Dec 11, 2024 pm 03:27 PM

在本教程中,我們將使用純 HTML、CSS 和 JavaScript 建立帶有浮動粒子的迷人霓虹燈效果。我們將分解每個組件並解釋它們如何協同工作來創造這種令人驚嘆的視覺效果。

Creating a Floating Particles Neon Light Effect with HTML, CSS, and JavaScript

1. 理解核心結構

讓我們先從分解基本的 HTML 結構開始:

<!DOCTYPE html>
<html>
<head>
    <title>Neon Light Effect</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
    <div>



<p>Here's what each element does:</p>

登入後複製
登入後複製
  • light-effect: Main container for our neon effect
  • light-inner: Creates the core glow effect
  • light-outer: Adds an additional layer of luminosity and rotation

2. CSS Variables and Root Setup

First, let's understand our CSS variables:

:root {
    --blur-size: min(40vw, 40vh);
}
登入後複製
登入後複製

這個變數至關重要,因為:

  • 使用 min() 確保響應式大小調整
  • 組合視窗寬度 (vw) 和高度 (vh)
  • 在不同的螢幕尺寸上建立比例效果

3. 身體造型深入研究

body {
    margin: 0;
    overflow: hidden;
    background: black;
    height: 100vh;
    width: 100vw;
    display: flex;
    justify-content: center;
    align-items: center;
}
登入後複製
登入後複製

讓我們分解每個屬性:

  • margin: 0: 刪除預設間距
  • 溢出:隱藏:防止滾動條並包含粒子
  • 背景:黑色:為霓虹燈效果創造對比
  • 高度/寬度:100vh/vw:確保完全視口覆蓋
  • display: flex: 啟用居中定位
  • justify-content/align-items: center: 完美居中

4. 主要光效容器

.light-effect {
    width: var(--blur-size);
    height: var(--blur-size);
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    filter: blur(calc(var(--blur-size) * 0.25));
    animation: pulseNeon 8s ease-in-out infinite;
}
登入後複製
登入後複製

關鍵方面解釋:

  1. 調整大小:使用 CSS 變數實現響應式尺寸
  2. 定位
    • 位置:固定:確保滾動過程中的穩定性
    • 上/左:50%:位於視窗中心的位置
    • 變換:翻譯(-50%,-50%):完美居中
  3. 模糊效果
    • 基於大小的動態模糊
    • 創造柔和、逼真的光澤
  4. 動畫
    • 8秒持續時間,效果流暢
    • 自然運動的緩入時機

5. 內部光層細節

.light-inner {
    position: absolute;
    width: 100%;
    height: 100%;
    background: radial-gradient(circle,
        rgba(138, 43, 226, 0.2) 0%,
        rgba(72, 61, 139, 0.15) 30%,
        rgba(0, 0, 255, 0.1) 50%,
        rgba(255, 255, 255, 0) 70%);
    mix-blend-mode: screen;
}
登入後複製
登入後複製

梯度分析:

  1. 中心(0%)
    • 不透明度為 20% 的紫色調
    • 創造核心亮度
  2. 中層(30%)
    • 不透明度為 15% 時呈現深紫色
    • 增加深度
  3. 外層(50%)
    • 不透明度為 10% 的藍色調
    • 建立過渡
  4. 邊緣(70%)
    • 淡入透明
    • 平滑邊緣融合

6. 外部光層細節

.light-outer {
    position: absolute;
    width: 100%;
    height: 100%;
    background: radial-gradient(circle,
        rgba(255, 255, 255, 0.15) 0%,
        rgba(138, 43, 226, 0.1) 40%,
        rgba(0, 0, 255, 0.05) 60%,
        rgba(255, 255, 255, 0) 80%);
    animation: rotateGradient 10s linear infinite;
    mix-blend-mode: screen;
}
登入後複製
登入後複製

特效分解:

  1. 梯度結構
    • 白色中心的強度
    • 紫色中間顏色
    • 藍色外層有深度
  2. 動畫
    • 10秒旋轉
    • 線性定時,實現平穩運動
  3. 混合
    • 螢幕模式發光效果
    • 增強光澤和色彩混合

7. 動畫關鍵影格解釋

<!DOCTYPE html>
<html>
<head>
    <title>Neon Light Effect</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
    <div>



<p>Here's what each element does:</p>

登入後複製
登入後複製
  • light-effect: Main container for our neon effect
  • light-inner: Creates the core glow effect
  • light-outer: Adds an additional layer of luminosity and rotation

2. CSS Variables and Root Setup

First, let's understand our CSS variables:

:root {
    --blur-size: min(40vw, 40vh);
}
登入後複製
登入後複製

動畫詳情:

  1. pulseNeon
    • 透過翻譯保持中心位置
    • 範圍在 1 到 1.1 之間
    • 創造呼吸效果
  2. 旋轉漸層
    • 360度全方位旋轉
    • 持續運動
    • 增添活力

8. 粒子系統深入研究

body {
    margin: 0;
    overflow: hidden;
    background: black;
    height: 100vh;
    width: 100vw;
    display: flex;
    justify-content: center;
    align-items: center;
}
登入後複製
登入後複製

顆粒特性:

  1. 基礎粒子
    • 固定定位
    • 半透明白色
    • 圓形
    • 沒有指標事件
  2. 尺寸變化
    • 使用 min() 響應式調整大小
    • 不同的動畫速度
    • 在所有裝置上保持比例

9. 粒子運動動畫

.light-effect {
    width: var(--blur-size);
    height: var(--blur-size);
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    filter: blur(calc(var(--blur-size) * 0.25));
    animation: pulseNeon 8s ease-in-out infinite;
}
登入後複製
登入後複製

動作分解:

  1. 開始(0%)
    • 從視窗下方開始
    • 隱形狀態
  2. 淡入(20%)
    • 平滑的不透明度過渡
  3. 主要動作(20-80%)
    • 完全可見
    • 穩定向上移動
  4. 退出(80-100%)
    • 淡出效果
    • 視口上方輕微重疊

10.動態粒子生成

.light-inner {
    position: absolute;
    width: 100%;
    height: 100%;
    background: radial-gradient(circle,
        rgba(138, 43, 226, 0.2) 0%,
        rgba(72, 61, 139, 0.15) 30%,
        rgba(0, 0, 255, 0.1) 50%,
        rgba(255, 255, 255, 0) 70%);
    mix-blend-mode: screen;
}
登入後複製
登入後複製

函數分析:

  1. 粒子創建
    • 動態 DOM 元素建立
    • 隨機大小分配
    • 機率分佈
  2. 定位邏輯
    • 隨機水平放置
    • 隨機動畫延遲
  3. 記憶體管理
    • 自動清理
    • 持續時間依大小
    • 防止記憶體洩漏

11.響應式設計實現

.light-outer {
    position: absolute;
    width: 100%;
    height: 100%;
    background: radial-gradient(circle,
        rgba(255, 255, 255, 0.15) 0%,
        rgba(138, 43, 226, 0.1) 40%,
        rgba(0, 0, 255, 0.05) 60%,
        rgba(255, 255, 255, 0) 80%);
    animation: rotateGradient 10s linear infinite;
    mix-blend-mode: screen;
}
登入後複製
登入後複製

回應注意事項:

  1. 平板電腦設備(≤768px)
    • 相對尺寸增加
    • 保持比例
  2. 行動裝置(≤480px)
    • 最大相對尺寸
    • 針對小螢幕進行了最佳化

12. 效能優化

@keyframes pulseNeon {
    0% {
        transform: translate(-50%, -50%) scale(1);
    }
    50% {
        transform: translate(-50%, -50%) scale(1.1);
    }
    100% {
        transform: translate(-50%, -50%) scale(1);
    }
}

@keyframes rotateGradient {
    0% {
        transform: rotate(0deg);
    }
    100% {
        transform: rotate(360deg);
    }
}
登入後複製

最佳化策略:

  1. 回應間隔
    • 行動裝置上的顆粒較少
    • 依設備功能調整
  2. 記憶體管理
    • 清除舊間隔
    • 防止多個實例
  3. 事件處理
    • 回應視窗大小調整
    • 保持性能

結論

此效果結合了多層複雜性:

  • 用於響應式調整大小的動態 CSS 變數
  • 複雜的漸層組合帶來逼真的光澤
  • 增加深度的粒子系統
  • 效能最佳化以實現平穩運行
  • 適用於所有裝置的響應式設計

結果是迷人的霓虹燈效果,可以增強任何 Web 項目,同時對效能影響最小。

以上是使用 HTML、CSS 和 JavaScript 建立浮動粒子霓虹燈效果的詳細內容。更多資訊請關注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教學
1673
14
CakePHP 教程
1429
52
Laravel 教程
1333
25
PHP教程
1278
29
C# 教程
1257
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