w3h5

JS生成随机颜色的简单方式,16进制自动补0

有时会遇到需要随机生成颜色的需求,可以使用下面的JS代码来实现。

分为两种,一种是 rgb() ,一种是16进制。

RGB随机颜色:

<script>
    function rgb(){//rgb颜色随机
        var r = Math.floor(Math.random()*256);
        var g = Math.floor(Math.random()*256);
        var b = Math.floor(Math.random()*256);
        var rgb = 'rgb('+r+','+g+','+b+')';
        return rgb;
    }
</script>

16进制随机颜色:

<script>
    function color16(){//十六进制颜色随机
        var r = Math.floor(Math.random()*256);
        var g = Math.floor(Math.random()*256);
        var b = Math.floor(Math.random()*256);
        //var color = '#'+r.toString(16)+g.toString(16)+b.toString(16);
        var color = '#'+(Array(6).join(0) + (r.toString(16)+g.toString(16)+b.toString(16))).slice(-6);
        return color;
    }
</script>

这地多谢网友提醒,因为评论显示是访客,暂时不知道怎么称呼,原始的方法会出现16进制不足6位,无法显示颜色的问题,需要使用“前补0”的的方法补齐6位,这样就可以正常显示了。

前补0具体方法实现:JS实现16进制颜色、数字前自动补0

声明:本文由w3h5原创,转载请注明出处:《JS生成随机颜色的简单方式,16进制自动补0》 https://www.w3h5.com/post/281.html

赞 (0)
分享到: +More |

评论 4

换个身份

  1. #1
    访客
    生成的颜色不对
    访客 4个月前 (06-25)回复 取消评论
  2. #2
    访客
    生成的颜色,会有长度不足6为的情况,建议优化算法,做个固定长度的,不然不会读取颜色的
    访客 4个月前 (06-25)回复 取消评论
  3. #3
    访客
    这个函数也许可以帮助你
    // 前置补0
    function PrefixInteger(num, n) {
    return (Array(n).join(0) + num).slice(-n);
    }
    访客 4个月前 (06-25)回复 取消评论