Javascript 根据屏幕亮度更改背景的alpha值

Javascript 根据屏幕亮度更改背景的alpha值,javascript,html,css,Javascript,Html,Css,我想根据用户的屏幕亮度更改背景图像的亮度。让我用一个简单的例子来说明这一点 例如,让这些文件成为我的html和css文件: *{ 保证金:0; 填充:0; 框大小:边框框; } .英雄{ 宽度:100%; 高度:100vh; 背景:线性梯度rgba0,0,0,0.6,rgba0,0,0,0.6,url'https://cdn.decorilla.com/online-decorating/wp-content/uploads/2018/10/modern-interior-design-gre

我想根据用户的屏幕亮度更改背景图像的亮度。让我用一个简单的例子来说明这一点

例如,让这些文件成为我的html和css文件:

*{ 保证金:0; 填充:0; 框大小:边框框; } .英雄{ 宽度:100%; 高度:100vh; 背景:线性梯度rgba0,0,0,0.6,rgba0,0,0,0.6,url'https://cdn.decorilla.com/online-decorating/wp-content/uploads/2018/10/modern-interior-design-grey-living-room2.png'; 背景尺寸:封面; 背景位置:中心; 显示器:flex; 对齐项目:居中; 证明内容:中心; } .内容{ 宽度:50%; } .内容h1{ 颜色:fff; 文本对齐:居中; 字号:2rem; } 文件 我的测试文本!
浏览器不知道监视器信息和设置。这不太可能 但你可以试试这个:

#:before{content:'';/*backgroundcodes*/opacity:.15}

浏览器不知道监视器信息和设置。这不太可能 但你可以试试这个:

#:before{content:'';/*backgroundcodes*/opacity:.15}

没有用于检测亮度的媒体查询

也没有JS的方法可以做到这一点

这对我来说没有意义,如果我改变显示器的亮度,电脑就不知道了。所以你不能做到这一点

至少你可以在黑暗和光明之间切换主题,但我认为这不是你想要实现的


对于文本,可以尝试添加文本阴影。这可能有助于更好地查看文本。

没有用于检测亮度的媒体查询

也没有JS的方法可以做到这一点

这对我来说没有意义,如果我改变显示器的亮度,电脑就不知道了。所以你不能做到这一点

至少你可以在黑暗和光明之间切换主题,但我认为这不是你想要实现的

对于文本,可以尝试添加文本阴影。这可能有助于更好地查看文本。

有一种滤镜属性亮度方法,可以根据屏幕亮度进行相对更改。从技术上讲,亮度仍然会随着屏幕的变化而变化,但它使我们能够将亮度作为一个常量进行增减

MDN

有一种滤镜属性亮度方法,可以根据屏幕亮度相对改变。从技术上讲,亮度仍然会随着屏幕的变化而变化,但它使我们能够将亮度作为一个常量进行增减


MDN

还有一个很好的答案,关于为什么JavaScript不可能实现这一点。同时,我认为一些额外的信息可能会有所帮助

如果您可以将应用程序安装到客户端,比如node.js应用程序,那么您可以达到某种屏幕亮度,并通过API公开该值,然后从JavaScript代码中获取该值

检测亮度是另一个问题,但这可能是一个良好的开端


这将是一个棘手的问题,因为解决方案各不相同,取决于您的目标操作系统,是否为外部监视器等。例如,可能对Windows系统有用。

还有一个很好的答案,说明为什么不可能使用JavaScript。同时,我认为一些额外的信息可能会有所帮助

如果您可以将应用程序安装到客户端,比如node.js应用程序,那么您可以达到某种屏幕亮度,并通过API公开该值,然后从JavaScript代码中获取该值

检测亮度是另一个问题,但这可能是一个良好的开端


这将是一个棘手的问题,因为解决方案各不相同,取决于您的目标操作系统,是否为外部显示器等。例如,可能对Windows系统有用。

颜色确实会根据亮度变亮。你的意思是基于背景的亮度吗?@Mr_Green我想根据屏幕的亮度调整背景的不透明度。亮度越高,alpha值越高。不幸的是,到目前为止我得到的答案表明这是不可能的。每种颜色都会根据亮度自动设置。如果您正在对其进行更改,那么这对一般的用户可访问性是不利的。无论如何,如果你想做改变,这些技术是做不到的,但必须是更核心的技术,比如.Net for windows桌面应用程序。不过我不建议你做这样的事情。颜色确实会根据亮度变亮。你的意思是基于背景的亮度吗?@Mr_Green我想根据屏幕的亮度调整背景的不透明度。亮度越高,alpha值越高。不幸的是,到目前为止我得到的答案表明这是不可能的。每种颜色都会根据亮度自动设置。如果您正在对其进行更改,那么这对一般的用户可访问性是不利的。无论如何,如果你想做改变,这些技术是做不到的,但是你必须改变
成为像.Net for windows桌面应用程序这样的核心应用程序。我不建议你做这样的事情。好吧……我们能指望js在将来增加查找屏幕亮度的功能吗;我不这么认为。正如我所说,电脑不知道你的显示器上有什么设置。Firefox曾尝试过,但该功能已被完全删除。好的,谢谢!文本阴影的东西很有帮助。好吧…我们可以期待js在将来添加查找屏幕亮度的功能吗;我不这么认为。正如我所说,电脑不知道你的显示器上有什么设置。Firefox曾尝试过,但该功能已被完全删除。好的,谢谢!文本阴影是一个很好的选择,但是它会影响div子对象的不透明度,这不是我想要的:在这种情况下,使用一个单独的div a浮动元素-position:absolute,z-index:-1来显示背景。@Sushil无论如何,我觉得文本阴影是最好的方法,正如另一个答案所说,即使我觉得文本阴影比滤镜更好:亮度。但是无论如何,谢谢你的帮助!亮度是一个不错的选择,但它会影响div子对象的不透明度,这不是我想要的:在这种情况下,使用一个单独的div a浮动元素-position:absolute,z-index:-1仅用于显示背景。@Sushil无论如何,我觉得文本阴影是最好的方法,正如另一个答案所说,即使我觉得文本阴影比滤镜更好:亮度。但是无论如何,谢谢你的帮助!