当前位置:首页 > 技术类 > 正文内容

自己动手给网站增加一个夜间模式

王-2M4个月前 (02-23)技术类1023


       教大家怎么给自己的网站添加一个夜间模式,当然代码不是我制作开发的,我不生产代码,我只是代码的搬运工(广告词很熟悉哈),好了不多说废话,这个代码是在网上找到,也不知道原始作者是谁,感谢您的无私奉献。好了,废话少说,开始表演。。。

首先,我们需要在主题模板中打开“footer.php”文件,在“</body></html>”前添加如下代码:

 JavaScript
<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('夜间模式关闭');
    }}</script>
  • 保存文件即可,如果想要实现自动切换夜间模式,那么直接复制如下代码

 JavaScript
<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() > 22 || new Date().getHours() < 5){
            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>
  • 代码中的 22 和 5 就是晚上22点开始到第二天的5点结束,其实这段代码并不严谨,为什么这么说呢?此代码是针对没有记录cookies的网站来说有效,一旦手动开启或者关闭过夜间模式,那么这个自动是失效了,除非清空浏览器的cookies,总之这里目前没有办法完美适配(我技术不行),其实我们可以在js做个判断,就是每天的22点时候判断cookies是否是夜间模式,如果不是,弹出对话框询问是否开启夜间模式,如果是就不提示。这么说您应该晓得吧,说的简单,但是,,,我不会写。。。咳咳!不扯了,继续教程。

  • 然后打开网站的“header.php”文件,我们需要给网站填写一个按钮,以此来手动开启和关闭夜间模式:

 Markup
<a class="at-night" href="javascript:switchNightMode()" target="_self"></a>
  • 复制如上代码,放在你认为合适的地方,然后保存,登录后台,清空主题模板缓存编译,然后打开首页,测试夜间模式是否有效。

  • 其实教程到这才算是完成一般,因为你在测试的过程中会发现,开启夜间模式并没有效果,,,嗯嗯是的,因为你们没有适配夜间模式的css,这个教程写不出,因为每个主题模板的div框架和css命名不同,无法统一,所以需要您自己去查找对应的class类,然后添加夜间模式的样式,例如:

 CSS
body.night DIV名称 {
    background-color: #263238;
    color: #aaa; }
  • 这样一来开启夜间模式后背景色就换成了黑色,字体是白色,如果网站css框架太多,相信我这绝对是一个大坑,哦对了,防止css样式重叠,建议在css样式表最底下适配夜间模式的代码。

  • 这些都配置完成,前台查看首页,你会发现在夜间模式下会出现闪屏,就是,打开一个页面的瞬间是正常模式,然后在1秒(电脑速度慢的时候可不止1秒)后转换成夜间模式,哇塞,简直就是亮瞎眼有木有?别急,教你一个办法,打开“header.php”文件,在<body>上添加如下代码:(此代码仅限Z-Blog

 Markup
<body class="{if GetVars('night' 'COOKIE') } night{/if}">

其他程序(TP5或者Typecho等)使用这个:

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

这样就解决闪屏的BUG了,当检测到cookie相关字段时直接输出body的class为night,就可以已防止页面闪烁。好了,准备下班~有不懂得留言,别告诉我让我给你们适配夜间模式css,我做不到,,,我的锦鲤目前还是适配中,代码太多,太焦躁。。。

哦对了,还是那句话,修改前记得备份主题模板文件


    扫描二维码推送至手机访问。

    版权声明:本文由金讯时代-BLOG发布,如需转载请注明出处。

    本文链接:http://www.lmwmm.com/post/1.html

    分享给朋友:

    相关文章

    树莓派4搭建NAS,让硬盘轻松联网

    树莓派4搭建NAS,让硬盘轻松联网

    不想错过我的推送哦!上个月,我们拿出了珍藏的板卡分享给大家学习使用,第一批获得板卡使用的小伙伴陆续给我发了他们的使用经验,树莓派4使用分享第一篇见下面文章。什么是NAS?NAS(Network Attached Storage:网络附属存储...

    如何用微信小程序,每天给自己赚个鸡腿?

    如何用微信小程序,每天给自己赚个鸡腿?

    话说:谁不想拥有一个自己的小程序呢?既可以赚点小钱又可以长长见识。不懂小程序的小白能不能做出来呢?那来对了,这个教程就是针对小白的。今天决定把方法开源出来,包括小程序从注册到上架,还有怎么起名能带来自然流量,及收益从哪里来!申请账号百度搜索...

    “如果飞机平安落地,我笑着送你走出客舱,如果不能,我陪你走到最后。”

    “如果飞机平安落地,我笑着送你走出客舱,如果不能,我陪你走到最后。”

    中国民航安全运行记录...4227天,今日归零。最新消息除了人数上更新为132人(原先报道是133人),暂无其他。民航局已启动应急机制,派出工作组赶赴现场。从下午3点半开始,看着无数民航人朋友圈的我,真的破防了...眼泪绷不住的往出冒。也许...

    IE霸占电脑20多年的“垃圾”,终于要彻底再见!

    IE霸占电脑20多年的“垃圾”,终于要彻底再见!

    这两天看到了一个新闻,微软再次提醒,IE浏览器将在今年6月正式退役。这让我是百感交集,从1995年至今,也有27个年头,在互联网的发展史上,已经可以算是一个“化石”级别的产品了。对于很多人来说,IE浏览器也应该要像“化石”那般,淹没在历史的...

    最近挺火的开灯壁纸×2

    最近挺火的开灯壁纸×2

    这两天刷抖音看到都在要这个壁纸,分享上来!壁纸源自于网络,我看到了下载出来分享上来,侵权联系删除!这个壁纸保存就是原图!本篇文章来源于微信公众号:             &nbs...

    在 Raspberry Pi 上使用 Python 播放声音

    在 Raspberry Pi 上使用 Python 播放声音

    今天,我需要在 Python 脚本中通过树莓派上的 USB 音频设备播放 MP3 或 WAV 文件。“应该很容易吧! ”我想!好吧,几个小时后,我决定写这篇博客文章来记录最简单的方法,因为我不得不花费相当长的时间才能到达真正通过...

    发表评论

    访客

    看不清,换一张

    ◎欢迎参与讨论,请在这里发表您的看法和观点。