使用javascript为网页增加夜间模式

 更新时间:2014年01月26日 09:47:03   作者:  
如何给Web页面增加夜间模式功能? 其实所谓的夜间模式就是在页面上增加一个透明的遮罩层,但是遮罩层会挡住页面元素, 解决方法是 添加DIV,给DIV的outline属性一个很大的outline-width值,用outline的边框作为遮罩,这样既能正常点击页面元素,又能达到夜间模式的效果

HTML+CSS:

复制代码 代码如下:

<div class="cover"></div>

复制代码 代码如下:

<style>
.cover{
    position:fixed;
    top: 0px;
    left: 0px;
    outline:5000px solid rgba(0, 0, 0, 0.3);
    z-index: 99999;
}
</style>

接着用JavaScript写个夜间模式plus:

复制代码 代码如下:

<script>
var brightness;
//显示遮罩
function cover(brightness) {
    if (typeof(div) == 'undefined') {
        div = document.createElement('div');
        div.setAttribute('style', 'position:fixed;top:0;left:0;outline:5000px solid;z-index:99999;');
        document.body.appendChild(div);
    } else {
        div.style.display = '';
    }
    div.style.outlineColor = 'rgba(0,0,0,' + brightness + ')';
}
//事件监听
window.addEventListener('keydown', function(e) {
    if (e.altKey && e.keyCode == 90) { //Alt+Z:打开夜间模式
        cover(brightness = 0.3);
    }
    if (e.altKey && e.keyCode == 88) { //Alt+X:关闭
        cover(brightness = 0);
    }
    if (e.altKey && e.keyCode == 38) { //Alt+↑:增加亮度
        if (brightness - 0.05 > 0.05) cover(brightness -= 0.05);
    }
    if (e.altKey && e.keyCode == 40) { //Alt+↓:降低亮度
        if (brightness + 0.05 < 0.95) cover(brightness += 0.05);
    }
}, false);
</script>

还可以写成GreaseMonkey脚本,作为浏览器扩展给任意页面增加夜间模式

相关文章

  • js使用cookie实现记住用户名功能示例

    js使用cookie实现记住用户名功能示例

    这篇文章主要介绍了js使用cookie实现记住用户名功能,涉及javascript操作cookie读写及删除实现用户名的保存功能,需要的朋友可以参考下
    2019-06-06
  • javascript设计模式 – 桥接模式原理与应用实例分析

    javascript设计模式 – 桥接模式原理与应用实例分析

    这篇文章主要介绍了javascript设计模式 – 桥接模式,结合实例形式分析了javascript桥接模式基本概念、原理、用法及操作注意事项,需要的朋友可以参考下
    2020-04-04
  • 详解小程序rich-text对富文本支持方案

    详解小程序rich-text对富文本支持方案

    目前小程序使用比较多的富文本方案一个是小程序自带的rich-text组件,一个是wxPrase,本篇文章主要介绍了详解小程序rich-text对富文本支持方案,感兴趣的小伙伴们可以参考一下
    2018-11-11
  • Swiper 4.x 使用方法(移动端网站的内容触摸滑动)

    Swiper 4.x 使用方法(移动端网站的内容触摸滑动)

    Swiper是纯javascript打造的滑动特效插件,面向手机、平板电脑等移动终端,这里为大家简单介绍一下Swiper4的用法,需要的朋友可以参考下
    2018-05-05
  • js实现树形数据转成扁平数据的方法示例

    js实现树形数据转成扁平数据的方法示例

    这篇文章主要介绍了js实现树形数据转成扁平数据的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • layui 表格的属性的显示转换方法

    layui 表格的属性的显示转换方法

    今天小编就为大家分享一篇layui 表格的属性的显示转换方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-08-08
  • 深入了解JavaScript中正则表达式的使用

    深入了解JavaScript中正则表达式的使用

    正则表达式是匹配模式,要么匹配字符,要么匹配位置。在JavaScript中正则表达式常常用来验证表单等。本文将带大家深入了解一下JavaScript中的正则表达式应该如何使用,需要的朋友可以参考一下
    2021-12-12
  • 禁止iframe脚本弹出的窗口覆盖了父窗口的方法

    禁止iframe脚本弹出的窗口覆盖了父窗口的方法

    这篇文章主要介绍了如何禁止iframe里面的脚本弹出的窗口覆盖了父窗口,经测试,貌似只能在IE下进行需要的朋友可以参考下
    2014-09-09
  • JavaScript+CSS实现仿Mootools竖排弹性动画菜单效果

    JavaScript+CSS实现仿Mootools竖排弹性动画菜单效果

    这篇文章主要介绍了JavaScript+CSS实现仿Mootools竖排弹性动画菜单效果,可实现鼠标滑过菜单项呈现弹性移动显示的效果,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-10-10
  • 使用JS调用工控机(Windows)虚拟键盘

    使用JS调用工控机(Windows)虚拟键盘

    在工控机触摸屏中,通过浏览器web端进行表单输入,当聚焦表单输入框并不会出现虚拟键盘进行输入,本文介绍将给大家介绍如何通过js调用工控机(Windows)虚拟键盘,文中通过代码示例介绍的非常详细,需要的朋友可以参考下
    2024-01-01

最新评论