Hai*_*ood 5 javascript random jquery
我'#'+Math.floor(Math.random()*16777215).toString(16);用来在按键上生成随机的十六进制颜色.
这用于在按下小写字母键时更改背景颜色.
我想更改此代码以通过键代码播种.我怎样才能做到这一点?
我试过,'#'+Math.floor(e.which*16777215).toString(16);但这会生成一个7个字符的代码,而不是6个?
Use*_*ode 18
通过说你想要一个"种子"随机数,我假设每次按下相同的键时你想要相同的颜色.遗憾的是,您无法Math.random()在JavaScript中控制种子,因为它不接受种子作为参数,就像在其他一些语言中一样.
您可以使用以下内容生成随机查找的十六进制数:
Math.floor((Math.abs(Math.sin(seed) * 16777215)) % 16777215).toString(16);
Run Code Online (Sandbox Code Playgroud)
这应该为ASCII范围内的所有内容生成唯一编号,但某些颜色可能非常相似.
最后的剩余操作% 16777215确保数字永远不会超过#ffffff.
相反的sin,你也可以使用其他Math功能,如cos,exp等.
更新
这是我的示例的一个版本,它明确显示了az的charCodes生成的颜色.