Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 文本在背景上始终可见_Javascript - Fatal编程技术网

Javascript 文本在背景上始终可见

Javascript 文本在背景上始终可见,javascript,Javascript,我的元素有一个用户可配置的背景色,这意味着它上面的文本并不总是可见的。我的第一个想法是根据背景色反转前景色,但有时这会导致一些非常可怕的颜色 是否有一种简单的方法可以根据背景颜色在黑白前景颜色之间切换?好的,您可以将RGB转换为HSL色调、饱和度、亮度,然后如果亮度高于阈值,则选择黑色;如果亮度低于阈值,则选择白色 作为参考,亮度值通过以下公式计算: L (lightness) = (M + m) / 2 其中M是maxR,G,B,M是minR,G,B 为了对称起见,我建议阈值为127.5/2

我的元素有一个用户可配置的背景色,这意味着它上面的文本并不总是可见的。我的第一个想法是根据背景色反转前景色,但有时这会导致一些非常可怕的颜色


是否有一种简单的方法可以根据背景颜色在黑白前景颜色之间切换?

好的,您可以将RGB转换为HSL色调、饱和度、亮度,然后如果亮度高于阈值,则选择黑色;如果亮度低于阈值,则选择白色

作为参考,亮度值通过以下公式计算:

L (lightness) = (M + m) / 2
其中M是maxR,G,B,M是minR,G,B


为了对称起见,我建议阈值为127.5/255,但实际上,你应该四处看看,看看它是否好看。

好的,你可以将RGB转换为HSL色调、饱和度、亮度,然后如果亮度高于阈值,选择黑色;如果亮度低于阈值,选择白色

作为参考,亮度值通过以下公式计算:

L (lightness) = (M + m) / 2
其中M是maxR,G,B,M是minR,G,B


为了对称起见,我建议阈值为127.5/255,但你真的应该仔细考虑一下,看看它是否好看。

@scimonester-你是说你不能用JavaScript读取元素的背景色吗?如果是这样,那就错了。@j08691您可以很容易地阅读它。但幸运的是,看看白色还是黑色看起来更好。你可能想考虑限制最终用户的配置选项,因此,他们不选择任何随机的背景颜色,而是提供N个选项。每个选项都有一个很好的预定义颜色组合,用于背景和前景。他们仍然可以自定义,但至少你知道网站会继续保持良好的外观。@scimonester-你是说你不能用JavaScript读取元素的背景色吗?如果是这样,那就错了。@j08691您可以很容易地阅读它。但幸运的是,看看白色还是黑色看起来更好。你可能想考虑限制最终用户的配置选项,因此,他们不选择任何随机的背景颜色,而是提供N个选项。每个选项都有一个很好的预定义颜色组合,用于背景和前景。他们仍然可以定制,但至少你知道,网站会继续保持良好的外观。