发表于: 2019-10-11 21:57:28
0 817
任务1完成了
获取元素
// 获取标签 DOM元素
var box = document.getElementsByTagName('div');
随机选取三个格子,并且不重复
// 创建一个函数,也就是点击按钮之后运行的JS功能
function randombox() {
for(i=0;i<9;i++){
// 随机选择1-9中的三个盒子
var a = Math.ceil(Math.random()*9);
// math为获取0-1之间上的随机值,
// 这个值乘以9 math.ceil为向上取整,就为1-9.
var b = Math.ceil(Math.random()*9);
var c = Math.ceil(Math.random()*9);
// 判断语句,如果a不等于b不等于c,则跳出循环,
// 否则继续循环
if (a !== b && b !== c && c !== a) {
break;
}
}
添加颜色
// 添加随机颜色
function randomcolor() {
// 1-256随机值,math.floor向下取整
var r = Math.floor(Math.random()*256);
var g = Math.floor(Math.random()*256);
var b = Math.floor(Math.random()*256);
return "rgb(" + r + ',' + g + ',' + b + ")";
// 每行随机选择一个数字,然后组合在一起就成了随机颜色
}
设置每个颜色不相同且不为初始颜色
// 把内容打印出来,跟任务没关系
console.log(box[a]);
console.log(box[b]);
console.log(box[c]);
// 为随机出来的三个盒子赋值上面选出来的随机颜色
box[a].style.backgroundColor = randomcolor();
box[b].style.backgroundColor = randomcolor();
box[c].style.backgroundColor = randomcolor();
// 设定三个颜色不能相同,且颜色都不等于橙色(初始颜色)
var a = box[a].style.backgroundColor
var b = box[b].style.backgroundColor
var c = box[c].style.backgroundColor
// 如果a等于b,或者等于c,或者任意一个等于橙色,则重新执行一次上面的函数
if (a == b || a == c || b == c || a == 'rgb(255,165,00)' || b == 'rgb(255,165,00)' || c == 'rgb(255,165,00)') {
randomcolor()
}
}
把除了本次运行的函数以外的盒子都变回橙色
1:
// 让所有盒子颜色变回橙色,为点击停止按钮做准备
function orange() {
// 声明一个值,这个值小于等于9就自加1(因为包括一个外面的大盒子),
// 然后全部变成橙色
for(i=0;i<=9;i++){
box[i].style.backgroundColor = "#ffa500";
}
}
2:
function z() {
// 从上面开始读取,先变橙再变随机颜色,
// 位置调换之后,会先变成随机颜色,再变成橙色覆盖的,看起来上面都没发生
orange();
randombox();
}
3:
// 单击按钮,开始改变颜色
function start(){
z()
}
需要增加一个定时器,为每1000毫秒执行一次循环,并且点击之后只能执行一次
设置开关效果
// 声明定时器变量
var myVar
//设定开关变量,只能执行一次点击效果。
var kaiguan=1;
function start(){
if(kaiguan){
myVar=setInterval(function(){z()},1000);
// 执行之后变成了0,不能再执行第二次
kaiguan = 0;
}
}
// 停止按钮
function stop() {
// 点击停止按钮之后,开关又变回了1.可以继续开始
kaiguan=1;
// 消除定时器
clearInterval(myVar);
// 全部变成橙色
orange();
}
明天的计划:
开始任务2
评论