当前位置: 首页 > 工具软件 > 变色方块 > 使用案例 >

原生JS实现10*10小方块随机变色,鼠标悬浮显示rgb值,鼠标点击后消失,3s后出现

许俊贤
2023-12-01

代码如下:

<!DOCTYPE html>
<html lang="en">
	<head>
	    <meta charset="UTF-8">
	    <meta http-equiv="X-UA-Compatible" content="IE=edge">
	    <meta name="viewport" content="width=device-width, initial-scale=1.0">
	    <title>Document</title>
	</head>

	<body style="width:550px ;height:550px;margin-left: 400px;">
	    <script>
	        function createBox() {
	            console.log("createBox");
	            //每个盒子宽高都设置为50
	            let nDivWidth = 50;
	            let nDivHeight = 50;
	
	            //创建容器
	            //每个页面,最大的容器是body对象,所有dom对象创建后默认都会放到body
	            let container = document.body;
	            //也可以自行创建一个div对象,div对象创建如果不添加任何属性,相当于一个空的容器,它与body自大的区别是,它属于body的一部分,并且body有默认长宽尺寸(浏览器当前长宽), div默认没有长宽
	            //let container = document.createElement('div');
	
	            for (let row = 0; row < 10; row++) { 
	                for (let col = 0; col < 10; col++) {
	                    let oDiv = document.createElement("div"); //创建div
	                    oDiv.style.float = "left";
	                    oDiv.style.marginLeft = "5px"; //设置每个盒子的左间距为5px
	                    oDiv.style.marginTop = "5px"; //设置每个盒子的上间距为5px
	                    oDiv.style.height = nDivHeight + "px";
	                    oDiv.style.width = nDivWidth + "px";
	
	                    //下面随机生RGB颜色值, 随机 数介于 0-256之间
	                    oDiv.style.background = "RGB(" + Math.floor(Math.random() * 256) + "," + Math.floor(Math.random() * 256) + "," + Math.floor(Math.random() * 256) + ")";
	
	                    //注册鼠标悬浮事件 title
	                    oDiv.onmouseover = ()=>{oDiv.title = "我的RGB值:"+oDiv.style.background}
	
	                    //注册鼠标点击事件
	                    oDiv.onclick = function () {
	                        //点击后隐藏
	                        oDiv.style.visibility = "hidden";
	                        //2秒显示, 2000表示 两千毫秒
	                        setTimeout(()=>{oDiv.style.visibility = 'visible'},2000)
	                        
	                    }
						
						// 让这些盒子的背景色随机发生变化的方法
				        function changeColor(){
				        	document.getElementsByTagName('div').item(Math.random()*100).style.background = "RGB("+ Math.floor(Math.random()*256)+","+Math.floor(Math.random()*256)+","+Math.floor(Math.random()*256)+")";
	    				}
				        window.setInterval(changeColor,1000);//每一秒随机变化一次颜色,setInterval定时调用			        
						
	                    //浏览器控制台可以看到当前div的排位
	                    console.log(row,col);
	                    //创建后把div放到容器内
	                    container.appendChild(oDiv);
	                }
	            }
	        }

        //无法使用window.onload方法,因为当前脚步挂载在页面上,相当于已经加载,方法创建后在脚本结尾直接调用整个程序即可
        	createBox();
        
    
    	</script>
	</body>
</html>

看看效果叭:

方块变色

 类似资料: