发表于: 2017-04-03 22:49:55

2 1199


今天完成的事情:

开始做任务一。

开始比较懵,不知道从哪里下手,但后来经过参考其他师兄的代码、并经过思路整理,逐渐理清了思路:

先利用Math.round(Math.random()*255)实现了0-255随机数的选取,然后再得出rgb3个值的选取,做出了随机颜色的函数;

再利用Math.floor(Math.random()*9)实现了0-8随机数的选取,并加上if判断函数不让选重,实现了随机选取3个格子的函数;

再利用document.style.backgroundColor实现随机颜色对随机格子的赋值,实现单次换颜色的函数;

再利用for循环对变色后的格子进行还原,然后再变色;

利用setInterval进行每隔一定时间进行变色,并赋给按钮的点击效果;

利用clearInterval(y)取消定时,并将颜色还原,函数赋给停止变色按钮的点击效果。


明天计划的事情:

将任务一的知识点再复习一下,然后开始做任务二。


遇到的问题:

var x=document.getElementsByClassName("box1");

function reset() {
clearInterval(y);
for(var i=0;i<=x.length;i++) {
if (x[i].style.backgroundColor!= "rgb(255,165,0)") {
x[i].style.backgroundColor = "orange";
}
   }
}

运行的时候一直报错,显示style未被定义。

开始以为是颜色不能识别的问题,后来经过查资料和验证,orange、rgb、十六进制颜色在JS中其实都可以正常识别和赋值;

又怀疑是x没有被获取到,后来发现也不是这个问题。

后来经过雪峰的提醒才发现是for循环的问题,i<=x.length,这样的话i可以取到9,但实际上取不到导致出错。只需要将<=改为<即可。


也知道了如果style报错,说明函数本身取值有问题,因为取不到值所以找不到该样式;而如果backgroundColor报错则说明是颜色值有问题。


收获:

random() 方法可返回介于 0 ~ 1(大于或等于 0 但小于 1 )之间的一个随机数;round() 方法可把一个数字四舍五入为最接近的整数;floor() 方法可对一个数进行向下取整;ceil() 方法可对一个数进行向上取整。

以及相互结合实现不同范围随机数的选取。


setInterval(代码,交互时间),在执行时,从载入页面后每隔指定的时间执行代码。

clearInterval() 方法可取消由 setInterval() 设置的交互时间。

语法:clearInterval(id_of_setInterval)

参数说明:id_of_setInterval:由 setInterval() 返回的 ID 值。


随机颜色的生成:

var r1=Math.round(Math.random()*255);
var g1=Math.round(Math.random()*255);
var b1=Math.round(Math.random()*255)
color1="rgb("+r1+","+g1+","+b1+")";



返回列表 返回列表
评论

    分享到