javascript - 根据背景颜色输入更改文本前景的颜色
问题描述
我有一个输入元素,它允许用户设置输入元素的背景颜色。
当用户设置输入元素的背景颜色时,我希望输入元素中的文本与原始颜色形成对比色。
例如:用户输入“黑色”作为输入背景色;那么输入的文本颜色将为白色。但是,如果用户输入“白色”作为输入颜色,则文本颜色将为黑色。(有更多的案例不仅仅是黑色或白色。)
我将如何实现这一目标?我知道您可以在背景上使用另一个元素并设置混合混合模式,但我不想这样做,因为这会删除输入的要点。
谢谢!
解决方案
您可以根据颜色的十六进制值计算黑色或白色是否与用户给出的颜色具有更高的对比度。
此链接详细介绍了进行此计算的两种方法。 https://24ways.org/2010/calculating-color-contrast/
推荐阅读
- laravel - 带有 laravel 的 IIS 删除/隐藏 index.php
- javascript - 当我尝试在网格布局中添加组件时,我的代码不起作用
- angular - 在 Angular rxjs 中订阅
- r - 传单图像未在 Shinyapp 中显示
- flutter - 如何制作迷你有状态小部件以随时间添加新点?
- security - 在 Misp 中找到 IoC
- c# - 如何从 /mnt/secret-store/DataAccessSettings--ConnectionSettings--ConnectionString 读取机密
- google-pagespeed - 在不同国家运行 PageSpeed Insight Api
- javascript - 如何使用 Bootstrap modals 和 jQuery 实现可重用的确认对话框?
- visual-studio-code - 为什么 Neovim 不突出显示整个语法?