大家好!
今天我们要实作网页的深浅色模式。
我们进入今天的主题吧!
body {
background-color: #fafafa;
color: #323232;
transition: background-color 0.5s,
color 0.5s;
}
body[data-color-scheme="dark"] {
background-color: #323232;
color: #fafafa;
}
window.addEventListener('load', function () {
const data = 'data-color-scheme';
let scheme = window.localStorage ? localStorage.getItem(data) : null;
if (scheme !== 'light' || scheme !== 'dark') {
const dark = '(prefers-color-scheme: dark)';
scheme = window.matchMedia ? (matchMedia(dark).matches ? 'dark' : 'light') : 'light';
}
/* 网页载入後执行一次 */
shift();
/* 点击按钮後切换模式 */
Felix('#switch').on('click', shift);
function shift(e) {
if (e) scheme = scheme === 'dark' ? 'light' : 'dark';
Felix('body')[0].setAttribute(data, scheme);
if (window.localStorage) localStorage.setItem(data, scheme);
}
});
范例连结制作中。
差不多也到尾声了。
如果对文章有任何疑问,也欢迎在下方提问和建议!
我是 Felix,我们明天再见!
<<: Day36 ATT&CK for ICS - Impact(2)
>>: “Work Smart” vs “Work Hard”? (单选题)
背景提要 团队走DevOps文化,所以频繁地沟通理解,以及任何东西考虑对於系统的定位,已经是我们再熟...
接续昨天的专案,创建好负责管理资料库的 model 之後,接着我们今天要来建立 Serializer...
缘由: 聊天室优化时有几个的地方我花比较多时间,我先列举一下: 1. 可以在送出的讯息中插入自订的表...
随着Internet越来越多地使用在商业和个人通讯,保护敏感讯息(例如:信用卡和 个人识别码(PIN...
在这一篇主要讲了Node 在终机端和脚本文件this不同的指向,那麽今天要来简单介绍Nodejs作用...