首页 > 其他分享 >js常用方法和一些封装(2) -- 随机数生成

js常用方法和一些封装(2) -- 随机数生成

时间:2022-10-31 11:31:31浏览次数:58  
标签:style 封装 -- random js var div Math 255


任何编程语言,随机数都是必不可少的,我在开发过程中,尤其在自己做一些小玩意的时候,就经常使用随机数,后来发现每次使用都懒得写,直接去网上搜一个,拿过来就用了。

可是时间一长,发现总是去网上搜不太好,就干脆做一个总结,现在分享出来。顺便附上一个小案例来说明。

先上小案例的截图:

js常用方法和一些封装(2) -- 随机数生成_随机数

这个例子是先画上一堆div,然后给每一个div绑定一个变颜色的事件,当然,颜色是随机生成的。

随机数字

/**
* 获取 0 ~ num 的随机数(闭区间)
*/
function randomNum(num){
return Math.floor(Math.random()*(num+1));
};

/*
* 获取范围随机数 (闭区间)
*/
function randomRange(start,end){
return Math.floor(Math.random()*(end-start+1))+start;
};

随机颜色

/**
* 获取随机颜色(不支持IE678) 因为rgba是IE9+才支持的
*/
function randomColor(){
var r = Math.floor(Math.random()*256);
var g = Math.floor(Math.random()*256);
var b = Math.floor(Math.random()*256);
return "rgb("+r+","+g+","+b+")";//IE7不支出rgb
};

/**
* 获取随机颜色(支持任意浏览器)
*/
function randomColor16(){
//0-255
var r = randomNum(255).toString(16);
var g = randomNum(255).toString(16);
var b = randomNum(255).toString(16);
//255的数字转换成十六进制
if(r.length<2)r = "0"+r;
if(g.length<2)g = "0"+g;
if(b.length<2)b = "0"+b;
return "#"+r+g+b;
};

顺便再贴上一开始的小demo的代码:

for(var x = 0 ; x < 29 ; x++){
for(var y = 0 ; y < 23 ; y++){
var div = document.createElement("div");
document.body.appendChild(div);
div.style.position = 'absolute';
div.style.width = '23px';
div.style.height = '23px';
div.style.left = x * 23 + 'px';
div.style.top = y * 23 + 'px';
div.style.background = '#CCC';
div.style.border = '1px solid #666';

div.onclick = function(){
this.style.background = randomColor16();
this.onclick = null; //取消该div的点击事件
}
}
}

注:以下代码代表创建一个div元素。

document.createElement("div");

js小巧而灵活,是不是觉得很有趣呢?

本章结束 ...

 

标签:style,封装,--,random,js,var,div,Math,255
From: https://blog.51cto.com/u_10957019/5808918

相关文章

  • 《JavaScript百炼成仙》续集01. let强者,竟恐怖如斯
     前些天发现了一个巨牛的人工智能学习博客,通俗易懂,风趣幽默,忍不住分享一下给大家。​​点击跳转​​这一日夜晚,月光皎洁,洒洒地落在青山院西南边的一座小山上。这座小山大约......
  • 地图商家如何导出
    现在很多做销售工作的思路都开阔了,从地图上直接找商家推销。但是普遍反映一个一个从地图上翻找客户效率比较低。笔者经过一段时间的琢磨,经过长时间的反复测试,做出了导出地......
  • 人大金仓数据库基础操作
    Kingbase数据库建表-步骤:切换kingbase身份su-kingbase链接kingbase数据库ksql-Usystem-dwebdb查询全部数据库\dn设置......
  • 事件的常见事件演示和案例5表格全选
    事件的常见事件演示   案例5表格全选     ......
  • springcloud Alibaba-nacos[作为配置中心]
    1、在pom文件中引入nacos-config-starter依赖    <!--nacos配置中心的依赖--><dependency><groupId>com.alibaba.cloud</groupId>......
  • KVM 动态调整 qcow2 硬盘
    动态扩容参考:https://cloud-atlas.readthedocs.io/zh_CN/latest/kvm/kvm_vdisk_live.html在宿主机器上使用qemu-imgresize命令调整磁盘大小,会提示不可操作#qemu-im......
  • 【博学谷学习记录】超强总结,用心分享|Java基础分享-树
    目录1.树的简介2.一些有关于树的概念3.树的种类3.1B-树、B+树简介3.2B+树简介3.3B+树和B-树的主要区别3.4B+树的插入4.B+树经典面试题 前言当我们发现SQL......
  • BigDecimal常用方法详解
    IDEA中的BigDecimal常用方法详解1.在项目中我们通常会求同比和环比我们就可以使用BigDecima;2.案例如下:@OverridepublicMap<String,Object>getJsrPzfx(Str......
  • linuxdeployqt QT打包
    一、环境硬件平台:英伟达Xavier系统版本:Ubuntu18.04.3LTSQt版本:Qt5.9.5二、步骤1、下载linuxdeployqt源码:下载地址:Releases·probonopd/linuxdeployqt·GitH......
  • 转车半径
    45度的转弯半径为25高度公路不过45国道不过90其他道路不过半圈(180)汽车库内汽车的最小转弯半径最小转弯半径(m)微型车4.50小型车6.00车型最小转弯半径(m)轻型车......