带有7位数的javascript随机颜色必须
大家好,
我发现以下很棒的脚本用javascript创建一个随机颜色。
var randColor = '#'+(Math.random()*0xFFFFFF<<0).toString(16);
我对这个脚本唯一的问题是,它不能保证它返回一个正常的7位六角形字符串。
有时它只有6位数字,如#e1d19。
有没有办法强制7位十六进制值?
谢谢您的帮助。
编辑:这是我的实际问题:
function randColor() {
var randColor = '#'+(Math.random()*0xFFFFFF<<0).toString(16);
return randColor;
}
for (var i=0; i<100; i++) {
$("#colorpicker").append("<div class='color' title="+randColor()+" style='background:"+randColor()+"'></div>");
}
我正在创建一个随机颜色的小div,当我点击它们时我抓住了它们的标题属性,我正在为我的身体背景着色。
但是目前我的代码以
<div style="background:rgb(176, 249, 252);" title="#8bc47d" class="color"></div>
因此,当我抓住title属性时,我给我的身体的颜色与小div显示的颜色不同。
没有找到相关结果
已邀请:
6 个回复
悸翠疮武昏
这招:
是一种在字符串中获得char5ѭ“char”副本的方法。我从7而不是6中减去了值的原始长度,这样当字符串长度为5个字符时,我得到一个零,当4个得到两个时,等等。 编辑&mdash;当然(在其他答案中提到)你也可以像这样得到填充零:
我必须做一些愚蠢的jsperf事情,看看哪个更快:-)
糖固傻染
瞧叮
寇剩
扦帽次杏
如果你想在开头填充,这应该这样做:
为了澄清,这将填充整个字符串,而不是单独的通道。我想,既然你不是每个频道的随机化,那么你真正只想要填充的红色或蓝色频道(可能是红色,即第二个片段)。 你的第二个问题是你两次调用randColor,给你两种不同的颜色。您需要将生成的颜色存储在变量中,然后使用该变量两次。
焙恍挝厂熄
随机浮点数为0.437920 ...... 将它转换为十六进制,你会得到类似0.7c13b41830e33的东西 拿最后6个字符来为你提供随机颜色# 易于理解,简短而有效。