javascript - 文本始终在背景上可见

标签 javascript

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

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

最佳答案

好吧,您可以将 RGB 转换为 HSL(色相、饱和度、亮度),然后如果亮度高于阈值则选择黑色,如果低于阈值则选择白色。

作为引用,亮度值的计算公式为:

L (lightness) = (M + m) / 2

其中 M 是 max(R, G, B),m 是 min(R, G, B)。

为了对称起见,我建议将阈值设置为 127.5(255 的一半),但实际上您应该试一试,看看它看起来是否不错。

关于javascript - 文本始终在背景上可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26847265/

相关文章:

javascript - 如何突出显示与已键入文本匹配的 jQuery 自动完成结果?

javascript - 使用 XML 解析器从用户获取最近的 YouTube 视频

javascript - 如何开始编写像 mohiomap 这样的东西?

javascript - 在 JavaScript 中打印 JSON 字典

javascript - JQuery动画div从右到左平滑

javascript - 使用 FileSystem Api 以 Javascript 写入文件

javascript - 检测 Google 折线图的缩放事件?

javascript - 使用jquery第n个子选择器进行选择

javascript - 脚本运行错误的函数

javascript - jQuery 和 $ 都不是函数