javascript - 反转页面颜色

标签 javascript html css

我正在制作一个脚本来反转 HTML 页面的颜色。所以晚上更容易看。我正在使用 filter: invert(100%) 来做到这一点。

这是脚本:

document.body.style.filer = "invert(100%)";
Object.values(document.body.getElementsByTagName("*")).forEach(e => {
    e.style.filter = "invert(100%)"
});

然而它并没有真正起作用。

Inverted

标题上的 Stack Overflow Logo 和按钮都消失了。我做错了什么,还有比这更好的方法吗?

提前致谢。

最佳答案

您的解决方案:

document.body.style.filer = "invert(100%)";
Object.values(document.body.getElementsByTagName("*")).forEach(e => {
    e.style.filter = "invert(100%)"
});

并没有真正起作用,因为您正在反转父元素它们的子元素的颜色。反转两次会使元素具有原始颜色。因此,您只需要反转父项的颜色(在本例中为 html,它是一切的根源):

document.querySelector('html').style.filter = 'invert(100%)'

并且每种颜色都会反转。请注意,如果您尝试在无色元素上使用它,则不会发生任何变化,即如果您在此页面 上尝试此脚本,您会注意到左侧的 div此页面带有 id left-sidebar 的一侧不会改变颜色。这是因为侧边栏没有任何颜色(中间部分和右侧边栏是倒置的,因为它们位于具有白色背景颜色的 div#content 内)。

但是,如果您向左侧栏添加背景(例如白色),它也会反转其颜色。

关于javascript - 反转页面颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59420166/

相关文章:

javascript - 在 Javascript (NodeJS) 中调用 REST API 并返回未定义的响应

html - 用于在绝对位置显示 div 的 css

javascript - 以秒和毫秒为单位的秒表

启动和悬停时的 CSS3 动画?

javascript - IE 从计算样式 (currentStyle) 读取继承的字体大小不正确

javascript - 如何在回调函数中访问app.get的 'response'参数

javascript - 如何在保持格式的同时将此日期转换为字符串?

javascript - Angular ng-click 事件

python - 向 Python tkinter 解释如何使用带有 SASS 的类

html - 使用 CSS 关键帧创建计数器