js檢測瀏覽器夜晚/黑暗(dark)模式方法
使用CSS,我們可以使用preferreds-color-scheme媒體查詢來檢測暗模式。
但是..如果我們必須使用JavaScript怎么辦? 我最近偶然發(fā)現(xiàn)了這個問題,因為我有一些JavaScript代碼向頁面添加了圖像,但是我想基于明暗模式顯示不同的圖像。
這是俺的解決辦法。
首先,檢測matchMedia對象是否存在(否則瀏覽器不支持夜晚模式(dark mode),您可以退回到白天模式(light mode))。
使用以下命令檢查其是否為夜晚模式(dark mode):
window.matchMedia('(prefers-color-scheme: dark)').matches如果啟用了暗模式,則將返回true。
這是一個完整的示例,如果圖像為夜晚模式(dark mode),我將反轉(zhuǎn)圖像的顏色:
const img = document.querySelector('#myimage')
if (window.matchMedia &&
window.matchMedia('(prefers-color-scheme: dark)').matches) {
img.style.filter="invert(100%)";
}但是,存在一個小問題:如果用戶在使用我們的網(wǎng)站時更改了模式怎么辦?
我們可以使用事件偵聽器檢測模式更改,實現(xiàn)代碼如下所示:
window.matchMedia('(prefers-color-scheme: dark)')
.addEventListener('change', event => {
if (event.matches) {
//dark mode
} else {
//light mode
}
})更多關(guān)于js檢測瀏覽器夜晚(dark)模式方法請查看下面的相關(guān)鏈接
相關(guān)文章
ECMAScript 5嚴格模式(Strict Mode)介紹
這篇文章主要介紹了ECMAScript 5嚴格模式(Strict Mode)介紹,本文講解了如何啟用嚴格模式、啟用嚴格模式后對變量和屬性、函數(shù)、with語句的影響,需要的朋友可以參考下2015-03-03
Javascript的時間戳和php的時間戳轉(zhuǎn)換注意事項
需要注意的是js的時間戳是13位,php的時間戳是10位,轉(zhuǎn)換函數(shù)如下,感興趣的朋友可以參考下哈2013-04-04
深入理解JavaScript系列(19):求值策略(Evaluation strategy)詳解
這篇文章主要介紹了深入理解JavaScript系列(19):求值策略(Evaluation strategy)詳解,本文講解了一般理論、按值傳遞、按引用傳遞、按共享傳遞(Call by sharing)、按共享傳遞是按值傳遞的特例等內(nèi)容,需要的朋友可以參考下2015-03-03

