13

我注意到计算机显示器的亮度因计算机而异。

因此,这极大地改变了网页的外观。

有没有办法使用 JavaScript 自动检测用户监视器的亮度(或暗度),以便我可以相应地调整网页颜色?

更新

请注意,我不希望手动用户参与。我希望这种检测是自动的,这样用户就不会意识到我会根据显示器的亮度/暗度自动动态更改调色板。

更新 2

另请注意,我不是在谈论要调整/校准最终用户的实际显示器,而是以编程方式调整所选颜色以显示在网页本身上。这意味着,如果最终用户的显示比正常(亮度)更暗,我将改为显示使用更亮颜色的网页版本。

4

6 回答 6

15

没有办法以编程方式执行此操作。您需要做的是编写某种显示器校准测试,可能会使用这些图像的变体,向用户显示两个或更多图像并要求他们选择看起来更近的一个,每次他们做出选择时调整颜色,直到您觉得所做的更改是准确的。

编辑:基本上我建议建立这样的东西

于 2010-05-21T15:05:02.140 回答
4

大多数亮度/暗度设置是显示器的功能。计算机中没有任何东西(更不用说在沙箱中运行的 JavaScript)能够访问此类信息 - 它主要是计算机和监视器之间的单向数据流。房间的亮度以及显示器后面是否有光线等因素都会影响屏幕的外观。

没有办法让每个人都以您看到的方式看到您的网站。你越早意识到这一点,你的生活就会越轻松。

于 2010-05-21T15:11:16.883 回答
3

不如使用闪光灯/silverlight 应用程序呢?它可以使用用户的相机(如果他们有的话)。然后,您可以分析来自相机的图片/视频,以推断有多少显示器光线从用户的脸上反射。

这将是一个非常脆弱和复杂的应用程序。

于 2010-05-21T15:13:54.087 回答
2

你不能用 javascript 做到这一点(而且我认为你不能用任何其他语言做到这一点,至少,没有硬件的帮助)。

于 2010-05-21T15:04:08.417 回答
1

不可以。作为一般规则,出于安全原因,不允许 JavaScript 查找有关您计算机的大量信息。

于 2010-05-21T15:05:42.510 回答
0

在您的问题更新 2 之后,您的要求更加清晰。但是,我建议您为用户提供一项功能来校准您网站的亮度。我们可以通过程序来实现。

一种方法可能是,您可以创建一个亮度条,并通过偏移值可以更新主体的背景颜色。

/*Pure JavaScript code for brightness Calibration*/
let brightnessBar= document.getElementById('brightnessBar');
brightnessBar.addEventListener('mousemove',function(e){
    let blue = 255-`${e.offsetY}`;
    document.body.style.backgroundColor= `rgb(255,255,${blue})`;
}); 

这里我的网站的默认背景颜色是白色,所以当有人试图通过调整滑动条来降低亮度时,我会采用“offsetY”,因为我的亮度条是垂直的。

另一种方法可能是,您可以拥有亮度条并拥有多个图像,其中一个比另一个稍暗。当用户降低亮度时,您会显示较暗的图像,而当用户增加亮度时,您会显示较亮的图像。

我希望我能回答你的问题。

于 2021-04-07T07:05:37.977 回答