思路是,先用div+css写一个九宫格的布局,长这样:
代码是这样:
- <style type="text/css">
- .nine{
- float:left;
- width:30%;
- padding-top:30%;
- margin:1%;
- background: rgb(255,193,37);
- border-radius: 25px;
- }
- input{
- display: block;
- width: 40%;
- margin: 0 auto 1em auto;
- border-radius: 25px;
- border: 0px;
- }
- .layout{
- width: 40%;
- margin:0 auto;
- }
- </style>
- </head>
- <body>
- <div class="layout">
- <div class="nine" id="1"></div>
- <div class="nine" id="2"></div>
- <div class="nine" id="3"></div>
- <div class="nine" id="4"></div>
- <div class="nine" id="5"></div>
- <div class="nine" id="6"></div>
- <div class="nine" id="7"></div>
- <div class="nine" id="8"></div>
- <div class="nine" id="9"></div></div>
- <input type="button" onclick="start()" value="跑马灯开始">
- <input type="button" onclick="end()" value="跑马灯结束">
- <script src="js1.js"></script>
- </body> 、
接下来用js来与九宫格交互,首先,获取随机生成的颜色RGB值:
- /*rgb随机颜色*/
- function bg(){
- var r = Math.floor(Math.random() * 256); //随机生成一个小于256的值
- var g = Math.floor(Math.random() * 256);
- var b = Math.floor(Math.random() * 256);
- //console.log(r,g,b)
- return "rgb("+r+','+g+','+b+");"
- }
然后创建一个数组,并把颜色RGB值赋给随机产生的三个九宫格元素:
- /*改变元素的颜色*/
- function change(){
- for(var i= 1;i<10;i++){
- document.getElementById(i).style.background = "rgb(255,193,37)";
- }
- var m = new Array(3);
- for (var i=0;i<3;i++) {
- if (m[0]==m[1]||m[0]==m[2]||m[1]==m[2]) //判断产生的数字是否一样
- {
- m[0] = Math.floor(Math.random() * 9)+1;
- m[1] = Math.floor(Math.random() * 9)+1;
- m[2] = Math.floor(Math.random() * 9)+1;
- }
- var x = document.getElementById(m[i]);
- x.style = "background:" +bg();
- }
- console.log(m);
- }
最后设置定时器,开始设置为1s执行一次,结束后恢复默认颜色:
- /*定时器开始 1000毫秒执行一次change函数*/
- function start(){
- str = setInterval(change,1000);//str是定时器的ID
- console.log(str);
- }
- /*定时器结束并恢复默认的颜色*/
- function end(){
- clearInterval(str);//清除定时器
- for(var i= 1;i<10;i++){
- document.getElementById(i).style.background = "rgb(255,193,37)";
- }
- }
最后效果图:
完。
微信小程序
互联网开发,终身学习者,欢迎您的关注!
2018年5月18日 下午7:46
会玩啊,懂代码真好!
2018年5月18日 下午8:22
@Koolight :mrgreen: 你也可以的。
2018年5月14日 下午7:54
嗯,我来留言啦,留言个啥好呢,嗯,百度排名第一的祝福可以不?
2018年5月14日 下午8:10
@夏沫浅笑 可以的