美文网首页前端学习Web前端之路
js—生成指定2个数范围内的随机数,随机颜色(16进制,rgb)

js—生成指定2个数范围内的随机数,随机颜色(16进制,rgb)

作者: webCoder | 来源:发表于2016-03-25 11:33 被阅读1090次

    之前自己在做瀑布流照片墙时,苦于强迫症,找了好久也没找到心仪的图片,决定用随机的颜色+随机的高度来模拟不同的图片。当时用的方法不太好,代码行数也较多,刚刚看到一篇文章,发现里面有关于随机数的各种事例。下面就引入我所感兴趣的(以后会常用到的)技巧。

    • 生成指定2个数范围内的随机数(概率基本相等)
    function randomNum(max,min){
            return Math.floor(Math.random()*(max-min+1)+min)
    }
    
    • 十六位进制颜色(概率基本相等)
    function randomColor(){
        var color="#";
        var colorArr=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"];
        for(i=0;i<6;i++){
            var cur=randomNum(15,0);
            color+=colorArr[cur];
        }
        function randomNum(max,min){
            return Math.floor(Math.random()*(max-min+1)+min)
        }
        return color;
    }
    
    • rgb颜色(概率基本相等)
    function randomColor(){
        var color="rgb(";
        for(i=0;i<3;i++){
            var cur=randomNum(255,0);
            if(i>1){
                color+=cur+")"
            }else{
                color+=cur+","
            }
        }
        function randomNum(max,min){
            return Math.floor(Math.random()*(max-min+1)+min)
        }
        return color;
    }
    
    • 不同概率的奖项设置(概率不同,自己设定)
    var pri=["一等奖","二等奖","三等奖","参与奖"];
    function updateRandom(){
        var ranNum=Math.random();
        var n=Math.random()/4;
        if(ranNum<0.01){
            return n;
        }
        else if(ranNum<0.04){
            return n+0.25;
        }
        else if(ranNum<0.1){
            return n+0.5;
        }
        else if(ranNum<1){
            return n+0.75;
        }
    }
    var randomIn=Math.floor(4*updateRandom());
    alert(pri[randomIn]);
    

    参考文章:小议Math.random()
    原文链接:http://www.jianshu.com/p/a6f8d08cc06d#

    相关文章

      网友评论

        本文标题:js—生成指定2个数范围内的随机数,随机颜色(16进制,rgb)

        本文链接:https://www.haomeiwen.com/subject/tizrlttx.html