发表于: 2019-05-10 23:19:11

1 873


今天完成的事:js1的初步完成

遇到的问题:很多

先定义一个var x =document.get ElementsByClassName( "box");

定义一个变量x获取方式是通过""box这个类来选择

因为ClassNames是多个所以 Elements要加上s

1.获取一个随机颜色

function colors () {

var r= Math.floor( Math .random () *  256);

获取256数字的一个

var g= Math.floor( Math .random () *  256);

获取256数字的一个

var b= Math.floor( Math .random () *  256);

Math.random()是令系统随机选取大于等于 0.0 且小于 1.0 的伪随机 double 

Math.floor() 返回小于或等于一个给定数字的最大整数。

由于 floor 是 Math 的一个静态方法,你总是应该像这样使用它 Math.floor(),而不是作为你创建的一个Math对象的一种方法(Math不是一个构造函数)。

获取256数字的一个

var rgb = “rgb( '+r+','+g+','+b+')”;

拼接成数组

return rgb;

把这个rgb颜色赋值给函数

}

2.获取三个随机数

for( ;a==b|| b==c|| c==a;){    ||这个符号的意思是若运算符左边为true,则不再对运算符右侧进行运算

var a= Math.floor(Math.random() * 9);

因为是9个div所以要从9中获取

var a= Math.floor(Math.random() * 9);

var a= Math.floor(Math.random() * 9);

}

for(;one ==two  || two == three ||three==one;)

var one = x[ a ].style.background= colors ();

这句话的意思就是colors 这个函数的值赋值给这个x[a] x[b ]x[c ] 就是随机的三个盒子改变他们的颜色

one two three 就是做一个比较让他们三个盒子的颜色都不同

;one ==two  || two == three ||three==one

就是第一个盒子的颜色等于第二个盒子的颜色就不执行下面的条件以此类推

var two = x[ b ].style.background= colors ();

var three = x[ c].style.background= colors ();

}


for  ( var i=o ; i<x.length; i++ )  {

x[ i ]= .style.background="roange"

}

我在写着个数字的时候我想的是for( var i =0 ; i<11 ; i++)

然后系统一直报错 原因是 总共只有9个盒子我给他定义的事11个 它一直在寻找后面的盒子造成的


这句话的意思就是定义一个i 赋值给它0 当i小于这个数组的个数时往下执行

x的背景颜色设置成orange

就是每次获取随机颜色后清楚颜色的意思

然后就是时间函数了

时间函数的话

time = setiInterval(function(){

},

2000)

我是这样理解的

setInterval函数的用法与setTimeout完全一致,区别仅仅在于setInterval指定某个任务每隔一段时间就执行一次,也就是无限次的定时执行。

2000是一个毫秒单位

具体原理不清楚

再往下走就是点击开始和点击结束了

document .getElementById( "start").disabled = "true"

document .getElementById( "start").disabled = "false"

都是对开始呢个盒子的限制

一个是开始 一个是禁止

禁止写在第二个盒子里

function end() {
for (var d= 0; d < x.length; d++) {
x[d].style.backgroundColor = "#ffa500"; //恢复默认颜色
   };
   clearInterval(time); //去除延时
document.getElementById("start").disabled = "false";
}


clearInterval(time); //去除延时


1.“|”运算符:不论运算符左侧为true还是false,右侧语句都会进行判断,下面代码

int a =1,b=1;        if(a++ == 1 | ++b == 2)
    System.out.println("true");System.out.println("a= "+ a + "  ,b=  " + b);

左侧为true,右侧为true,输入出结果为:

true
a= 2 ,b= 2

3.&运算符与|运算符类似:不论运算符左侧为true还是false,右侧语句都会进行判断:

“&&”运算符与“||”运算符类似:若运算符左侧为false则不再对右侧语句进行判断:

}
for (; a == b || b == c || c == a;) {//当abc有任意两个相等,就开始运行,直到没有相等。选择三个不相同的随机数
   var a = Math.floor(Math.random() * 9);
   var b = Math.floor(Math.random() * 9);
   var c = Math.floor(Math.random() * 9);
   // x[a].style.background =colors();
   // x[b].style.background =colors();
   // x[c].style.background =colors();
}

当初这一段代码是错的它会随机获得6种颜色 是因为我把这桑和盒子放到了for循环里

移到外面就解决了还是对for循环了解的不够基础不够

明天的事:洗牌算法写任务1


返回列表 返回列表
评论

    分享到