Skip to content

DynamicGradientBackground 展示了四種不同類型的動態漸層背景效果 base on fundamental frontend framework : Html/css/js

Notifications You must be signed in to change notification settings

alfo0924/DynamicGradientBackground

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DynamicGradient Background

動態漸層背景網站分析

這個網站展示了四種不同類型的動態漸層背景效果,並使用了現代前端技術和框架來實現響應式設計和互動功能。以下是對網站特點、優點以及程式碼邏輯原理的詳細分析。

網站特點與優點

視覺設計特點

  1. 多樣化的漸層效果:網站提供四種不同風格的動態漸層背景,從基本的線性漸層到複雜的互動式漸層,滿足不同視覺需求。

  2. 流暢的動畫過渡:所有背景效果都使用了CSS動畫或JavaScript動態變化,創造出流暢的視覺體驗。

  3. 深色主題設計:採用深色背景配合明亮的漸層色彩,提高了視覺對比度,使色彩更加鮮明。

  4. 半透明資訊卡片:內容區域使用半透明背景和模糊效果,既保持了背景的可見性,又提高了文字的可讀性。

技術實現優點

  1. 響應式設計:使用Bootstrap框架實現完全響應式佈局,在各種設備上都能良好顯示。

  2. 模組化結構:HTML、CSS和JavaScript分離,遵循現代前端開發的最佳實踐。

  3. 互動性:特別是在互動式漸層背景中,加入了滑鼠追蹤功能,增強用戶體驗。

  4. 無縫導航:導航欄設計清晰,點擊切換不同背景效果時無需頁面重載,提升使用體驗。

  5. 優化的視覺反饋:導航項目有明確的激活狀態指示,使用黑底白字的反向配色,提高可識別性。

  6. 性能考量:使用CSS動畫而非大量JavaScript動畫,減輕瀏覽器負擔。

程式碼邏輯原理

HTML結構

網站採用了清晰的語義化HTML結構:

  1. 導航區域:使用``元素包含Bootstrap導航組件,每個導航項都有data-target屬性指向對應的內容區塊。

  2. 內容區域:使用``元素分隔不同的背景效果展示,每個區域都有唯一ID與導航項的data-target對應。

  3. 外部資源引用:分離引用Bootstrap CSS/JS和Font Awesome圖標庫,以及自定義的style.css和script.js。

CSS實現原理

  1. 基本動態漸層背景

    #basic-gradient {
        background: linear-gradient(-45deg, #ee7752, #e73c7e, #23a6d5, #23d5ab);
        background-size: 400% 400%;
        animation: gradientAnimation 15s ease infinite;
    }

    通過設置背景尺寸為400%並使用keyframes動畫移動背景位置,創造出顏色流動效果。

  2. 進階動態漸層背景: 使用多個絕對定位的圓形元素(.gradient-blob),每個元素有不同的漸層色彩、位置和動畫路徑,並應用模糊濾鏡效果。

  3. 互動式動態漸層背景: 類似進階版,但添加了JavaScript事件監聽器,使背景元素能夠跟隨滑鼠移動。

  4. 彩虹圓錐漸層背景

    .rainbow-background {
        background: conic-gradient(#f00, #f50, #ff0, #0c0, #09d, #03a, #909, #f00);
        animation: rotate 20s linear infinite;
    }

    使用conic-gradient創建圓錐漸層,並添加旋轉動畫和模糊覆蓋層。

  5. 導航欄樣式

    .nav-link.active {
        color: #000;
        background-color: #fff;
        font-weight: bold;
    }

    活動項目使用黑底白字的反向配色,增強可識別性。

JavaScript邏輯

  1. 導航切換功能

    navLinks.forEach(link => {
        link.addEventListener('click', function(e) {
            e.preventDefault();
            // 移除所有活動類
            navLinks.forEach(l => l.classList.remove('active'));
            document.querySelectorAll('.content-section').forEach(section => {
                section.classList.remove('active-section');
            });
            // 添加活動類到當前項
            this.classList.add('active');
            const targetId = this.getAttribute('data-target');
            document.getElementById(targetId).classList.add('active-section');
        });
    });

    這段代碼實現了點擊導航項時,隱藏所有內容區域,只顯示對應的目標區域,同時更新導航項的活動狀態。

  2. 互動式背景邏輯

    interactiveSection.addEventListener('mousemove', (e) => {
        // 計算滑鼠位置相對於視窗的百分比
        const rect = interactiveSection.getBoundingClientRect();
        const mouseX = (e.clientX - rect.left) / rect.width;
        const mouseY = (e.clientY - rect.top) / rect.height;
        
        // 根據滑鼠位置移動漸層元素
        blob1.style.transform = `translate(${mouseX * 10}%, ${mouseY * 10}%) rotate(${mouseX * 360}deg)`;
        blob2.style.transform = `translate(${-mouseX * 15}%, ${-mouseY * 15}%) scale(${1 + mouseY * 0.5})`;
        
        // 動態改變漸層顏色
        const hue1 = mouseX * 360;
        const hue2 = mouseY * 360;
        blob2.style.background = `linear-gradient(135deg,
                    hsl(${hue1}, 100%, 70%),
                    hsl(${hue2}, 100%, 70%))`;
    });

    這段代碼計算滑鼠在容器內的相對位置,然後根據這些值動態調整背景元素的位置、旋轉角度和顏色。

  3. 響應式導航欄

    window.addEventListener('scroll', () => {
        if (window.scrollY > 50) {
            navbar.style.background = 'rgba(0, 0, 0, 0.9)';
        } else {
            navbar.style.background = 'rgba(0, 0, 0, 0.8)';
        }
    });

    監聽滾動事件,根據滾動位置調整導航欄的背景透明度。

總結

這個網站展示了現代網頁設計中動態漸層背景的多種實現方式,結合了Bootstrap框架的響應式設計和自定義的CSS/JavaScript效果。它不僅視覺效果豐富,而且代碼結構清晰,實現了良好的用戶體驗和跨設備兼容性。特別是互動式背景的實現,展示了如何使用JavaScript創建與用戶互動的動態視覺效果,這在現代網頁設計中是一個很有價值的技術示例。

About

DynamicGradientBackground 展示了四種不同類型的動態漸層背景效果 base on fundamental frontend framework : Html/css/js

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published