Userainbow()
本文詳細介紹了個人網站Potath.Horse的彩虹背景效果的創建。作者休假以從事個人項目,他解釋了效果背後的簡單而有效的JavaScript代碼。
核心概念涉及將用戶的滾動位置映射到HSL(色調,飽和度,輕度)顏色模型中的色相值。當用戶瀏覽頁面內容時,這會產生光滑的顏色過渡。提供了代碼段:
導出const userainbowbg =()=> useeffect(()=> { const cb =()=> { const viewportheight = window.innerheight const contentHeight = document.body.getBoundingCletRect()。高度 const viewportsperrotation = math.min( 3, contentheight / viewPotheight ) const來自= 51 const進度= window.scrolly /(viewPortheight * viewportsperrotation) const H =(來自360 *進度)%360 document.body.style.backgroundColor =`hsl($ {h} ver,100%,50%) } window.addeventlistener('scroll',cb,{vassive:true}) return()=> window.removeeventlistener('scroll',cb) }))
作者將HSL模型與RGB進行了對比,突出了HSL的直觀性質,以調節色彩溫度和亮度。他們解釋了HSL在改變色調的同時選擇一致的亮度的選擇,這是所需效果的關鍵方面。最初的色調偏移( const from = 51
)被解釋為一種風格選擇。
討論了潛在的性能改進,包括避免使用冗餘的getBoundingClientRect
調用,並使用requestAnimationFrame
進行節流。但是,作者強調了在優化之前測量性能的重要性。
該文章還解決了HSL非敏感統一性的局限性,並承認某些完全飽和的顏色可能比其他顏色更暗。作者計劃在將來的迭代中使用像HSLUV一樣的均勻顏色空間來解決此問題。
提到了可訪問性考慮因素,重點是色盲和prefers-reduced-motion
媒體查詢。雖然初始測試沒有任何問題,但作者承認可以將背景動畫視為運動併計劃進一步的用戶研究的可能性。
作者結束時回顧了設計的懷舊靈感,旨在實現有趣而功能的用戶體驗。他們還提到了一段時間的倦怠後編碼項目時遇到的樂趣。
腳註
- CMYK中的“ K”代表黑色,以避免與其他顏色模型中代表藍色的“ B”混淆。
- 由於感知顏色空間和RGB/HSL表示之間的差異,亮度並不完全一致。
以上是Userainbow()的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

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

您是否曾經在項目上需要一個倒計時計時器?對於這樣的東西,可以自然訪問插件,但實際上更多

在元素個數不固定的情況下如何通過CSS選擇第一個指定類名的子元素在處理HTML結構時,常常會遇到元素個數不�...

關於Flex佈局中紫色斜線區域的疑問在使用Flex佈局時,你可能會遇到一些令人困惑的現象,比如在開發者工具(d...

格子呢是一塊圖案布,通常與蘇格蘭有關,尤其是他們時尚的蘇格蘭語。在Tartanify.com上,我們收集了5,000多個格子呢
