发表于: 2017-04-04 08:57:17

1 561


今天完成的任务

1。js task1完成度98%

明天的计划

1.完成任务一

2.完成任务二的页面

遇到的问题

1.昨天做的东西只能点击一次,早上最早想要实现的是自动变化。去看了定时器,应该使用

setInterval

然后很天真的把昨天的函数写了进去

setInterval('change()',1000);

很自然的开始就停不下来了,但是颜色没有重置,所以很快就是各种颜色了。

准备重置,一开始的想法是在赋值之后,把改变的三个格子再变回原来的样子。结果失败。。。。

后来看到这个可以接受多个函数,我准备把那几个函数分解下

unction num() {
for (i=0 ; i<n; i++) {
boxnum[i]= parseInt(Math.floor(Math.random()*9+1));
           for (j=0; j<i; j++) {
             if (boxnum[i]==boxnum[j]) {
                   i=i-1;
                   break;
               }
}
}
}
function color() {
for (i=0 ; i<n; i++) {
boxcolor[i]='#'+(Math.random()*0xffffff<<0).toString(16);
   }
}
function variety() {
   document.getElementById('box'+ boxnum[0]).style.backgroundColor=boxcolor[0];
   document.getElementById('box'+ boxnum[1]).style.backgroundColor=boxcolor[1];
   document.getElementById('box'+ boxnum[2]).style.backgroundColor=boxcolor[2];
}

function clear() {
  for (k=1; k<10; k++) {
    document.getElementById('box'+k).style.backgroundColor='#FFA500';
   }
}

分解之后,又天真的把四个函数都写了进去,结果就是完全没变化。

只好把那个重置的函数重新提出来再写一个计时器,才算勉强完成。

2.如果把计时器写成全局变量,那么就变成不用点击就可以开始,如果写在函数里面变成局部变量,我就没法在想让他结束的另一个函数里面调用它.。。

3.对于每点击一次计时器会重开的问题,我选择了让这个按钮只能被点击一次

var c = 1;
start.onclick=function change() {
if (c == 1) {
setInterval('num();color();variety()',1000);
       setInterval('clear()',999);
       c=0;
   }
};

4。还有一些小问题,今晚或者明天解决

收获

对于js的浅显认识又进了一步吧


返回列表 返回列表
评论

    分享到