js + css 自动/手工开启网站白天/黑夜模式(全网站通用,不只是typecho)

作者 by Adminkylin / 2022-02-24 / 暂无评论 / 64 个足迹

一、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.querySelector('link[title="dark"]').disabled = false;
        document.cookie = "night=1;path=/"
        console.log('夜间模式开启');
    }else{
        document.body.classList.remove("night");
        document.querySelector('link[title="dark"]').disabled = true;
        document.cookie = "night=0;path=/"
        console.log('夜间模式关闭');
    }
}

//指定时间进入夜间模式
(function(){
    if(document.cookie.replace(/(?:(?:^|.*;\s*)night\s*\=\s*([^;]*).*$)|^.*$/, "$1") === ''){
        if(new Date().getHours() > 19 || new Date().getHours() < 6){
            document.body.classList.add("night");
            document.querySelector('link[title="dark"]').disabled = false;
            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");
            document.querySelector('link[title="dark"]').disabled = true;
            console.log('夜间模式关闭');
        }else if(night == '1'){
            document.body.classList.add("night");
            document.querySelector('link[title="dark"]').disabled = false;
            console.log('夜间模式开启');
        }
    }
})();
</script>

建议放在页面底部,我这里用的是Typecho搭建的网站,其它里面有部分PHP代码需要修改一下。

二、CSS代码部分

<link href="<?php $this->options->themeUrl('statics/dark.css'); ?>" rel="<?php if($_COOKIE['night'] != '1'){echo 'alternate ';} ?>stylesheet" type="text/css" title="dark">

在header.php里面加上上面的代码,夜晚模式就让dark.css生效,所以呢,接下来就是在statics文件夹里面创建这个css文件,里面写暗黑模式的相关样式即可。

三、PHP代码部分
在body里面加个cookie,代码如下:

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

四、效果演示
可以去我的网站看看效果,在网站右上角有个切换开关,代码如下:

<a href="javascript:switchNightMode()" target="_self" class="darkmode">开启夜间模式</a>
本文作者:萧亮 Blog
本文链接:js + css 自动/手工开启网站白天/黑夜模式(全网站通用,不只是typecho) - https://yundoudong.com/index.php/archives/171/
版权声明:如无特别声明,本文即为原创文章,仅代表个人观点,版权归 遇见数据仓库-自媒体运维工具-萧亮的程序屋-全球节点-素材工具下载-抖音数据分析-影视搜索 所有,未经允许不得转载!
本文最后更新于2022年02月24日,已超过170天没有更新。如果文章内容或图片资源失效,请告知!谢谢!下面为随机推送文章!

评论已开启

阅读足迹:64 阅读 typecho调用语法
typecho随机格言显示