如何使用JavaScript檢測暗模式
使用JavaScript來檢測暗模式及檢測模式變更
使用CSS,我們可以使用prefers-color-scheme
媒體查詢檢測暗模式。
但是… 如果我們必須使用JavaScript呢?最近我遇到了這個問題,因為我有一些JavaScript代碼,該代碼會將圖像添加到頁面上,但我想根據亮/暗模式顯示不同的圖像。
以下是我們可以實現的方法。
首先,檢測matchMedia
對象是否存在(否則瀏覽器不支持暗模式,您可以回退到亮模式)。
然後,使用以下代碼檢查是否為暗模式:
1 | window.matchMedia('(prefers-color-scheme: dark)').matches |
如果啟用了暗模式,它將返回true
。
以下是一個完整的示例,如果為暗模式則反轉圖像的顏色:
1 | const img = document.querySelector('#myimage') |
然而,還存在一個問題:如果使用者在使用我們的網站時更改了模式該怎麼辦?
我們可以使用事件監聽器來檢測模式的變更,像這樣:
1 | window.matchMedia('(prefers-color-scheme: dark)') |
tags: [“JavaScript”, “暗模式”, “matchMedia”, “事件監聽器”]