【发布时间】:2019-03-23 13:41:46
【问题描述】:
我有一些颜色样本应该显示所显示颜色的 rgb 值,背景是实际颜色。然后,如果有问题的颜色是浅色的,文本应该是黑色的,如果有问题的颜色是深的,文本颜色应该是白色的。
如何检测 RGB 值是浅色还是深色??
<style>
#preview {
display: block;
height: 40px;
line-height: 40px;
font-size: 20px;
vertical-align: middle;
width: 150px;
text-align: center;
}
</style>
<!-- html -->
<button id="new_color">Try Random Color</button>
<p id="preview">Click the button!</p>
<script>
const getRandNum = () => Math.floor(Math.random() * 256);
const get_random_color = () => (`rgb(${getRandNum()}, ${getRandNum()}, ${getRandNum()})`);
const checkColor = (color) => {
// color = 'rgb(x, y, z)';
// check color is light
// or color is dark
return true;
}
$('#new_color').click(function(){
const p = $('#preview');
const bg_color = get_random_color();
const color_is_light = checkColor( bg_color );
const text_color = color_is_light ? 'black' : 'white';
p.css({
color: text_color,
backgroundColor: bg_color
})
});
</script>
我只找到了#hex 颜色的解决方案,但没有找到 rgb 的解决方案。很感谢任何形式的帮助。
【问题讨论】:
标签: javascript jquery colors