博客园美化夜间模式

博客园美化夜间模式

一.点击控制样式

主要看思路,自己增删改查,里面样式只针对我的博客

一.触发点击

二.修改按钮样式以及对于类名

三.将模式信息存入sessionStorage中

四.更具按钮的类名,自己博客样式进行跟换

<!--夜间模式点击事件js-->
<script >
let night_close = document.querySelector('.night-close')||document.querySelector('.night-open');
night_close.onclick = function () {
    let button_classname = this.className;
    button_classname == 'night-close' ? sessionStorage.model = 'night' :                      sessionStorage.model = 'sun'
    button_classname == 'night-close' ? this.className = 'night-open' : this.className = 'night-close'
    button_classname == 'night-close' ? this.innerHTML = '夜间模式:<span style="color:greenyellow">开启</span>' : this.innerHTML = '夜间模式:<span style="color:red">关闭</span>'
    let body = document.querySelector('body');
    let post = document.querySelector('.post');
    let header = document.querySelector('#header');
    let days = document.querySelectorAll('.day');
    let tiankong = document.querySelector('.tiankong');
    let calendar = document.querySelector('#blog-calendar');
    //页首图片
    button_classname == 'night-close' ? tiankong.style.display = 'none' : tiankong.style.display = 'block'
    //整体颜色
    button_classname == 'night-close' ? body.style.background = '#0B1226' : body.style.background = '#fff'
    //日历
    calendar.style.backgroundColor = '#ffffff'
    //头部
    button_classname == 'night-close' ? header.style.background = 'url(https://images.cnblogs.com/cnblogs_com/pythonywy/1516412/o_sleep2.png) no-repeat 898px -65px' : header.style.background = 'url(https://images.cnblogs.com/cnblogs_com/pythonywy/1455150/o_1kongbai.png)'
    if (button_classname != 'night-close') {
        header.style.backgroundSize = '100% 100%'
    }
    if (days) {
        for (var days_index = 0, a = days.length; days_index < a; days_index++) {
            days[days_index].style.backgroundColor = '#ffffff'
        }
    }
    //正文
    if (post) {
        post.style.backgroundColor = '#ffffff'
    }
};

</script>

二.时间控制切换

考虑情况:

1.时间到了提醒是不是要切换

2.已经是夜间模式了就用切换

3.有些人不喜欢这些提示

这段代码解决这3中情况,内容自己理解

<!--夜间模式分支,根据时间通过session中存储的信息修改-->
<script>
    var time_obj = new Date();
    var time_hour = time_obj.getHours();
    var night_model = sessionStorage.getItem('model');
    var chiose = sessionStorage.getItem('chiose');
    console.log(chiose);
    if (!chiose) {
        if (night_model != 'night') {
            if (parseInt(time_hour) >= 18 || parseInt(time_hour) <= 6) {
                if (confirm("到晚上了是否开启夜间模式?")) {
                    sessionStorage.model = 'night';
                    if (confirm('以后要不要提醒您呢')) {
                        sessionStorage.chiose = false
                    } else {
                        sessionStorage.chiose = true
                    }
                } else {
                    sessionStorage.model = 'sun';
                    if (confirm('以后要不要提醒您呢')) {
                        sessionStorage.chiose = false
                    } else {
                        sessionStorage.chiose = true
                    }
                }
            }
        }
    }
</script>

三.结合session存储的信息进行切换模式

为了解决问题:

1.跳转页面后要重复切换模式

2.提示后进行切换

注意点:这段代码必须放在时间控制后面,不然时间那段没啥用

<!--夜间模式分支,session中有night切换夜间模式-->
<script >
letmodel = sessionStorage.getItem('model')
if (model == 'night') {
    let body_night = document.querySelector('body');
    let post_night = document.querySelector('.post');
    let header_night = document.querySelector('#header');
    let days_night = document.querySelectorAll('.day');
    let tiankong_night = document.querySelector('.tiankong');
    let calendar_night = document.querySelector('#blog-calendar');
    night_close.className = 'night-open'
    night_close.innerHTML = '夜间模式:<span style="color:greenyellow">开启</span>'
    tiankong_night.style.display = 'none'
    body_night.style.background = '#0B1226'
    calendar_night.style.backgroundColor = '#ffffff'
    header_night.style.background = 'url(https://images.cnblogs.com/cnblogs_com/pythonywy/1516412/o_sleep2.png) no-repeat 898px -65px'
    if (days_night) {
        for (var days_index = 0, c = days_night.length; days_index < c; days_index++) {
            console.log(days_night[days_index])
            days_night[days_index].style.backgroundColor = '#ffffff'
        }
        if (post_night) {
            post_night.style.backgroundColor = '#ffffff'
        }
    }
}
</script>

代码仅作为参考

原文地址:https://www.cnblogs.com/pythonywy/p/11544485.html

时间: 2024-11-07 05:42:57

博客园美化夜间模式的相关文章

博客园美化阅读模式

为了自己能更加好的查看自己的总结以及让关注我的小可爱们能更加好的学习我弄了阅读模式 一.直接上代码 放在页脚即可 <style> .read_book { background: url(https://images.cnblogs.com/cnblogs_com/pythonywy/1516412/o_greedread.png) } .not_read_book { background: url(https://images.cnblogs.com/cnblogs_com/pythony

博客园美化教程大集合(超详细,看这篇就够了)

阅读目录: 1. 前言 2. 定制自己的博客 0. 美化整体效果 1. 准备工作 2. 自定义个性化导航栏 3. 添加顶部博主信息 4. 添加顶部滚动公告 5. 为博客文章添加目录导航 6. 添加分享功能按键 7. 定制推荐和反对按键的炫酷样式 8. 添加快速返回顶部的功能按键 9. 添加打赏功能按键 10. 添加页面放大缩小功能按键 11. 添加Github图标及链接 12. 添加公告栏图片 13. 添加公告栏文字信息 14. 添加公告栏个性时钟 15. 为公告栏添加访客来源统计 16. 为公

博客园美化资源网站链接

详谈如何定制自己的博客园皮肤(禁用css模板级别) 博客美化汇总 NSDog 博客园美化教程大集合----极致个性化你的专属博客(超详细,看这篇就够了) 博客园美化教程第二篇----极致个性化你的专属博客(为博客添加背景音乐插件,调整页面布局等) 原文地址:https://www.cnblogs.com/CH520/p/9813646.html

博客园美化首页随笔展示美化

博客园美化首页随笔展示美化 一.css .postDesc-img { position: absolute; padding-bottom: 0; float: right; right: 0; bottom: 0; z-index: -1; } .cnblogs-post-body h3 { text-decoration: none; font-size: 10px; line-height: 1px; } .cnblogs-post-body h2 { color: red; font-

博客园美化博客随笔目录

博客园美化博客随笔目录 基于孤傲苍狼在2014-5-11写的目录代码基础上进行改进 一.js代码 <!--目录--> <script type="text/javascript"> var BlogDirectory = { /* 获取元素位置,距浏览器左边界的距离(left)和距浏览器上边界的距离(top) */ getElementPosition:function (ele) { var topPosition = 0; var leftPosition

[美化] 博客园美化历程

目录 开端 具体的css 净化页面 标题的蜜汁动画 改一下主页的比例 另一些改动 侧边栏的html js代码的添加 在没有目录的情况下不显示目录 在url存在 article 的时候不显示版权声明 js附带的css js完整代码 结语 标题上写着美化,但怎么看自己的界面,仿佛每条线都在呐喊着:"实际上是简化吧!" /扶额 在入驻博客园的一周时间里,我使用各种课上时间抽空研究了一下博客园的页面定制CSS代码.HTML和JS这些看了半天也搞不明白的东西,并将原来的模板"Simpl

博客园美化操作

之所以写这篇文章的原因了主要就是博客园的默认样式太单一,而且很多人都在用,就想与众不同一样,不做大多数 准备工作 想要美化自己的博客园默认界面,首先需要申请js权限 步入正题 当你的这一步做完之后就可以开始给博客化妆了 #########################################页面标题样式================================ #cnblogs_post_body { color: black; font: 0.875em/1.5em "微软雅黑

博客园美化

侧栏字体更改 1 .catListTitle { 2 font-weight: bold; 3 line-height: 1.2; 4 margin-top: 21px; 5 margin-bottom: 10.5px; 6 border-left:10px solid #008000; 7 padding: 10px 0 10px 14px; 8 text-align: left; 9 font-family: 微软雅黑; 10 } 11 #profile_block { 12 font-fa

博客园美化测试

1.博客园博客园 h2 非大是大非发送地方是第三方的规范收费的鬼斧神工的风格十分的 h3 非大是大非发送地方是第三方的规范收费的鬼斧神工的风格十分的鬼斧神工的奉公守法非大是大非发送地方是第三方的规范收费的鬼斧神工的风格十分的鬼斧神工的奉公守法非大是大非发送地方是第三方的规范收费的鬼斧神工的风格十分的鬼斧神工的奉公守法非大是大非发送地方是第三方的规范收费的鬼斧神工的风格十分的鬼斧神工的 P 非大是大非发送地方是第三方的规范收费的鬼斧神工的风格十分的鬼斧神工的奉公守法非大是大非发送地方是第三方的规范