AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當前位置:首頁 > 科技  > 軟件

如何使用CSS和JavaScript實施暗模式?

來源: 責編: 時間:2023-10-10 18:30:56 260觀看
導讀譯者 | 布加迪審校 | 重樓近年來,暗模式作為用戶界面選項備受追捧。它提供了更暗的背景和更亮的文本,不僅可以減輕眼睛疲勞,還可以節省電池續航時間,尤其是在OLED屏幕上。不妨了解如何結合使用CSS和JavaScript為網站和Web

譯者 | 布加迪ib128資訊網——每日最新資訊28at.com

審校 | 重樓ib128資訊網——每日最新資訊28at.com

近年來,暗模式作為用戶界面選項備受追捧。它提供了更暗的背景和更亮的文,不僅可以減輕眼睛疲勞,還可以節省電池續航時間,尤其是在OLED屏幕上。ib128資訊網——每日最新資訊28at.com

ib128資訊網——每日最新資訊28at.com

使用CSS和JavaScript實施暗模式

為了實施暗模式,您將使用CSS定義外觀。然后,您將使用JavaScript來處理暗模式和亮模式之間的切換。ib128資訊網——每日最新資訊28at.com

創建主題類

為每個主題使用一個類,這樣您就可以在兩種模式之間輕松切換。對于較完整的項目而言,您應該考慮暗模式如何影響設計的方面面。ib128資訊網——每日最新資訊28at.com

.dark {              background: #1f1f1f;              color: #fff;     }     .light {              background: #fff;              color: #333;     }

選擇交互元素

將以下JavaScript添加到script.js文件中。第一部分代碼只是選擇用于處理切換的元素。ib128資訊網——每日最新資訊28at.com

// Get a reference to the theme switcher element and the document body    const themeToggle = document.getElementById("theme__switcher");    const bodyEl = document.body;

添加切換功能

下一步,使用下列JavaScript在亮模式(light)類與暗模式(dark)類之間切換。注意,改變切換開關以表明當前模式也是個好主意。該代碼使用CSS過濾器來實現這功能。ib128資訊網——每日最新資訊28at.com

// Function to set the theme     function setTheme(theme) {             // If the theme is "dark," add the "dark" class, remove "light" class,             // and adjust filter style             bodyEl.classList.toggle("dark", theme === "dark");            // If the theme is "light," add the "light" class, remove "dark" class,             bodyEl.classList.toggle("light", theme !== "dark");            // adjust filter of the toggle switch            themeToggle.style.filter = theme === "dark" ? "invert(75%)" : "none";    }    // Function to toggle the theme between light and dark    function toggleTheme() {           setTheme(bodyEl.classList.contains("dark") ? "light" : "dark");    }    themeToggle.addEventListener("click", toggleTheme);

這使得您的頁面可以通過點擊切換容器來更改主題。ib128資訊網——每日最新資訊28at.com

ib128資訊網——每日最新資訊28at.com

使用JavaScript增強暗模式

考慮以下兩個改進,可以使您的暗模式網站被訪客更易于使用。ib128資訊網——每日最新資訊28at.com

檢測用戶偏好

需要在網站加載之前檢查用戶的系統主題,并調整您的網站進行匹配。下面介紹如何使用matchMedia函數來做到這一點ib128資訊網——每日最新資訊28at.com

// Function to detect user's preferred theme    function detectPreferredTheme() {            // Check if the user prefers a dark color scheme using media queries            const prefersDarkMode = window.matchMedia("(prefers-color-scheme: dark)").matches;            setTheme(prefersDarkMode);    }    // Run the function to detect the user's preferred theme    detectPreferredTheme();

現在,任何訪問您網站的用戶都會看到一個與他們設備當前主題相匹配的設計。ib128資訊網——每日最新資訊28at.com

使用本地存儲持久化用戶首選項

為了進一步增強用戶體驗,可以使用本地存儲記住用戶選擇模式。這確保了他們在面對會話時不必重復選擇偏愛的模式。ib128資訊網——每日最新資訊28at.com

function setTheme(theme) {              bodyEl.classList.toggle("dark", theme === "dark");              bodyEl.classList.toggle("light", theme !== "dark");              themeToggle.style.filter = theme === "dark" ? "invert(75%)" : "none";             // Setting the theme in local storage              localStorage.setItem("theme", theme);    }    // Check if the theme is stored in local storage    const storedTheme = localStorage.getItem("theme");    if (storedTheme) {             setTheme(storedTheme);    }    function detectPreferredTheme() {              const prefersDarkMode = window.matchMedia("(prefers-color-scheme: dark)").matches;                  // Getting the value from local storage              const storedTheme = localStorage.getItem("theme");              setTheme(prefersDarkMode && storedTheme !== "light" ? "dark" : "light");  }

擁抱以用戶為中心的設計

暗模式不僅限于外觀,而是把用戶的舒適和偏好放在第一位。如果遵循這種方法,您可以創建用戶友好的界面鼓勵訪客重復訪問。您在編程和設計時,優先考慮用戶便利,并為訪客提供更好的數字體驗。ib128資訊網——每日最新資訊28at.com

原文標題:How to Implement Dark Mode Using CSS and JS,作者:DAVID JAJAib128資訊網——每日最新資訊28at.com

本文鏈接:http://www.tebozhan.com/showinfo-26-12700-0.html如何使用CSS和JavaScript實施暗模式?

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 玩轉SpringBoot—Starter組件

下一篇: Golang 中的 Bufio 包詳解之 Bufio.Scanner

標簽:
  • 熱門焦點
  • 對標蘋果的靈動島 華為帶來實況窗功能

    繼蘋果的靈動島之后,華為也在今天正式推出了“實況窗”功能。據今天鴻蒙OS 4.0的現場演示顯示,華為的實況窗可以更高效的展現出實時通知,比如鎖屏上就能看到外賣、打車、銀行
  • Redmi Pad評測:紅米充滿野心的一次嘗試

    從Note系列到K系列,從藍牙耳機到筆記本電腦,紅米不知不覺之間也已經形成了自己頗有競爭力的產品體系,在中端和次旗艦市場上甚至要比小米新機的表現來得更好,正所謂“大丈夫生居
  • Automa-通過連接塊來自動化你的瀏覽器

    1、前言通過瀏覽器插件可實現自動化腳本的錄制與編寫,具有代表性的工具就是:Selenium IDE、Katalon Recorder,對于簡單的業務來說可快速實現自動化的上手工作。Selenium IDEKat
  • 從 Pulsar Client 的原理到它的監控面板

    背景前段時間業務團隊偶爾會碰到一些 Pulsar 使用的問題,比如消息阻塞不消費了、生產者消息發送緩慢等各種問題。雖然我們有個監控頁面可以根據 topic 維度查看他的發送狀態,
  • 如何使用JavaScript創建一只圖像放大鏡?

    譯者 | 布加迪審校 | 重樓如果您曾經瀏覽過購物網站,可能遇到過圖像放大功能。它可以讓您放大圖像的特定區域,以便瀏覽。結合這個小小的重要功能可以大大改善您網站的用戶體驗
  • .NET 程序的 GDI 句柄泄露的再反思

    一、背景1. 講故事上個月我寫過一篇 如何洞察 C# 程序的 GDI 句柄泄露 文章,當時用的是 GDIView + WinDbg 把問題搞定,前者用來定位泄露資源,后者用來定位泄露代碼,后面有朋友反
  • 最“俊美”淘寶賣家,靠直播和短視頻圈粉,上架秒光,年銷3000萬

    來源 | 電商在線文|易琬玉編輯|斯問受訪店鋪:Ringdoll戒之人形圖源:微博@御座的黃山、“Ringdoll戒之人形”淘寶店鋪有關外貌的評價,黃山已經聽累了。生于1985年的他,哪
  • iQOO Neo8 Pro即將開售:到手價3099元起 安卓性能最強旗艦

    5月23日,iQOO如期舉行了新品發布會,全新的iQOO Neo8系列也正式與大家見面,包含iQOO Neo8和iQOO Neo8 Pro兩個版本,其中標準版搭載高通驍龍8+,而Pro版更
  • OPPO K11評測:旗艦級IMX890加持 2000元檔最強影像手機

    【Techweb評測】中端機型用戶群體巨大,占了中國目前手機市場的大頭,一直以來都是各手機品牌的“必爭之地”,其中OPPO K系列機型一直以來都以高品質、
Top