js判断系统主题:让网页适应系统主题及夜间模式
让网页适应系统主题及夜间模式。
1.使用CSS判断 使用媒介查询prefers-color-scheme
,支持dark,light,no-preference三种模式。
/*深色*/
@media (prefers-color-scheme: dark) {
body {
background: rgb(53, 54, 58);
color: rgba(238,238,238,1);
}
}
/*浅色*/
@media (prefers-color-scheme: light) {
body {
background: rgb(255,255,255);
color: rgba(51,51,51,1);
}
}
2.js判断
/*判断是否支持主题色*/
if (window.matchMedia('(prefers-color-scheme)').media === 'not all') {
console.log('Browser doesn\\'t support dark mode');
}
/*判断是否处于深色模式*/
if(window.matchMedia('(prefers-color-scheme: dark)').matches){
//Do some thing
}
/*判断是否处于浅色模式*/
if(window.matchMedia('(prefers-color-scheme: light)').matches){
//Do some thing
}
/*模式切换听器*/
var listeners={
dark: function(mediaQueryList ){
if(mediaQueryList.matches){
alert('您切换到深色模式了!')
}
},
light: function(mediaQueryList){
if(mediaQueryList.matches){
alert('您切换到浅色模式了!')
}
}
}
window.matchMedia('(prefers-color-scheme: dark)').addListener(listeners.dark)
window.matchMedia('(prefers-color-scheme: light)').addListener(listeners.light)
3.效果展示(以谷歌首页为例)