基于十六进制颜色在JavaScript中创建IF条件

时间:2018-02-07 15:38:54

标签: javascript html

我有一行JavaScript,允许我在每次加载页面时使我的网页背景颜色不同:

document.getElementById("band").style.background = '#'+(Math.random()*0xFFFFFF<<0).toString(16);

为了可见度,我希望字体为黑色或白色,具体取决于背景是暗还是浅。

例如,我认为十六进制的“中途”点是#800000。

如果十六进制数小于800000,我希望我的脚本告诉我的网页使用白色字体,如果十六进制数大于800000,我希望使用黑色字体。

1 个答案:

答案 0 :(得分:1)

您可以使用TinyColor

var color = '#'+(Math.random()*0xFFFFFF<<0).toString(16);

document.write("<b style=\"color:" + color + ";\">" + color + "<\/b> is ");

var c = tinycolor(color);

if (c.isDark()) 
  document.write("Dark");
else 
  document.write("Light");
<script src="https://rawgit.com/bgrins/TinyColor/master/tinycolor.js"></script>