在制作饼图或标签云时,我们通常需要很多颜色,方法有二。一是准备一组漂亮的候选颜色,二是随机生成颜色。在数量很多或不明确时,我想后者就是唯一的出路了。谷歌了一下,整理如下,按由浅入深的顺序排列。
实现1
以下为引用的内容:
2. return '#' + 3. ( function (color){ 4. return (color += '0123456789abcdef' [Math.floor(Math.random()*16)]) 5. && (color.length == 6) ? color : arguments.callee(color); 6. })( '' ); 7. } |
随机生成6个字符然后再串到一起,闭包调用自身与三元运算符让程序变得内敛,初心者应该好好学习这种写法。
实现2
以下为引用的内容:
2. return ( function (m,s,c){ 3. return (c ? arguments.callee(m,s,c-1) : '#' ) + 4. s[m.floor(m.random() * 16)] 5. })(Math, '0123456789abcdef' ,5) 6. } |