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