发表于: 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的浅显认识又进了一步吧
评论