发表于: 2017-03-27 21:50:06

2 1097


一,今天完成的事情

1.今天一早过来怼任务一,任务一的两个难点,一个是随机获取三个方块,第二个是随机颜色。针对第一个,使用getElementByTagName(“div”)获得元素的数组,然后获取三个不相等的随机数,用Math.floor(Math.random()*9)来得到随机数,用这个方法先给x赋值再用一个for循环,条件是x == y||y ==z||x == z,判断,输出三个随机数,然后写一个获取随机颜色的函数,中途遇到,先加五个零再转换16进制,转换失败的情况,不清楚为什么,难道是先加五个零,数据从数字变成字符串,然后转换进制失效?

function change_color() {
return "#"+("00000"+(Math.floor(Math.random()*16777216)).toString(16)).slice(-6);
}

2.再来写点击第一个按钮开始闪,最开始想写一个无限循环,但是无限循环好像只输出最后一次变颜色的值,并没有闪,然后想写个迭代闪的函数,函数里面嵌套自己,又出现了堆栈溢出的报错,这个pass,最后看了下任务步骤,用个定时器搞定,1秒循环一次。

3.写点击第二个button停止闪,用了clearInterval(t2),最开始如下把t2写在了函数里面,怎么点都没用,问了家健,把t2当成全局变量就好了,是因为js函数变量有即用即销的属性,定义在里面使用过一次之后,t2清空,再怎么clear也没用了。

function get_div() {
var t2;
   if (click) {
click = false;
       t2 = setInterval("shink();", 200);
   }
else {
click = true;
       var square = document.getElementsByTagName("div");
       for (a = 0; a < 9; a++) {
square[a].style.backgroundColor = "#FFA500";
       }
clearInterval(t2);
   }
}

4.最后碰到的一个问题是点击开始闪按钮之后,再点击会继续创建一个开始闪的事件,后来如上加了一个再次点击就停止闪的效果,写法如上,给停止闪get_div(click = false),停止闪就不会和开始闪的功能一样了。

5.开始做任务2,把任务2的需要用的页面写出来了,写好了样式。

二,明天要完成的事情

完成任务2的第一个页面实现,尝试做做进度条。

三,遇到的问题

如上,遇到的问题挺多,解决的也还行。

四,收获

1.js,getElementBy。。。。各种dom的使用,js时钟无限循环和延时执行。

2.js,变量即用即销。



返回列表 返回列表
评论

    分享到