排行榜 统计
  • 建站日期:2020/07/11
  • 文章总数:151 篇
  • 评论总数:184 条
  • 分类总数:5 个
  • 最后更新:1月17日

给博客添加夜间/护眼模式

本文阅读 2 分钟
首页 typecho 正文

本文最后更新于2022年12月23日, 已超过543天没有更新。 如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!

食用方法

进入主题,首先第一步,在您的页脚文件:footer.php上面加入以下js代码。

    < script type = "text/javascript" >
    function switchNightMode() {
    var night = document.cookie.replace(/(?:(?:^|.*;\s*)night\s*\=\s*([^;]*).*$)|^.*$/, "$1") || "0";
    if (night == "0") {
        document.body.classList.add("night");
        document.cookie = "night=1;path=/";
        console.log("夜间模式开启")
    } else {
        document.body.classList.remove("night");
        document.cookie = "night=0;path=/";
        console.log("夜间模式关闭")
    }
    } (function() {
    if (document.cookie.replace(/(?:(?:^|.*;\s*)night\s*\=\s*([^;]*).*$)|^.*$/, "$1") === "") {
        if (new Date().getHours() > 21 || new Date().getHours() < 6) {
            document.body.classList.add("night");
            document.cookie = "night=1;path=/";
            console.log("夜间模式开启")
        } else {
            document.body.classList.remove("night");
            document.cookie = "night=0;path=/";
            console.log("夜间模式关闭")
        }
       } else {
        var night = document.cookie.replace(/(?:(?:^|.*;\s*)night\s*\=\s*([^;]*).*$)|^.*$/, "$1") || 
     "0";
        if (night == "0") {
            document.body.classList.remove("night")
        } else {
            if (night == "1") {
                document.body.classList.add("night")
            }
        }
      }
    })();
    </script>

加好后在您的页面body处加入php判断,这样当检测到cookie相关字段时直接输出body的class为night,已防止页面闪烁。在头部文件:header.php文件中加入以下代码

    <body class="<?php echo($_COOKIE['night'] == '1' ? 'night' : ''); ?>">

如果原中已有了class的话就将<?php echo($_COOKIE['night'] == '1' ? 'night' : ''); ?>放在class=“”里面。

最后再将网站中所有需要变暗的地方调整其css,已达到变暗效果,具体css调整示例可看下方。

    body.night 需要调整的区块{
    background-color: #000000;
    color: #aaa;
    }
    body.night img {
    filter: brightness(30%);
    }

由于每个网站或者博客CSS的命名不一样,所以请根据自己的网站/博客CSS进行修改,大家可以通过右键“审查元素”来获取CLASS的名字。

每个CLASS的区块都要用“body.night 需要调整的区块”书写,如“body.night h2”、“body.night .post-tags”等。

这样当晚上9点到白天6点之间,网站打开时就自动会变成暗黑模式。当然,你也可以加一个按钮,来手动控制打开关闭暗黑模式。如下代码。

    <a href="javascript:switchNightMode()" target="_self">Dark</a>
本文来自投稿,不代表本站立场,如若转载,请注明出处:
-- 展开阅读全文 --
为Typecho主题集成且小优化文章阅读统计功能
« 上一篇 10-09
typecho添加用户个人签名功能
下一篇 » 10-12
V注册会员 L评论等级
R1 条回复
  1. 2023-02-09     Win 7 /    Chrome

    感谢分享,之前也看到一篇一样的文章..正需要。

没有更多评论了