本文詳細介紹了個人網站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中文網其他相關文章!

對於Astro,我們可以在構建過程中生成大部分網站,但是有一小部分服務器端代碼可以使用Fuse.js之類的搜索功能來處理搜索功能。在此演示中,我們將使用保險絲搜索一組個人“書籤”


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

SublimeText3 Linux新版
SublimeText3 Linux最新版