发表于: 2019-07-01 21:04:36

1 913


今天完成的事件

做JS任务1 让9空格的背景颜色更换代码如下:

var a = document.getElementsByClassName("color");
var bone = document.getElementById("bone");
var btow = document.getElementById("btow");
var myvar;
// bone.onclick = fei();
function fei() {
//随机选择3个正方形输出颜色
var one = Math.floor(Math.random()*9);
var two = Math.floor(Math.random()*9);
var three = Math.floor(Math.random()*9);
// 判断数字如果数字相同重新随机
if(one == two){
one = Math.floor(Math.random()*9);
}
else if(two == three){
two = Math.floor(Math.random()*9);

}
else if(three == one){
three = Math.floor(Math.random()*9);
}
a [one].style.background = 'rgb'+ randomColor();
a [two].style.background = 'rgb'+ randomColor();
a [three].style.background = 'rgb'+ randomColor();
}
function randomColor() {
// 随机选择3种颜色
var colorVal;
var r = Math.floor(Math.random()*265);
var g = Math.floor(Math.random()*265);
var b = Math.floor(Math.random()*265);
colorVal = '('+ r +','+ g +','+ b +')';
return colorVal;
}
bone.onclick = function cs(){
myvar = setInterval( function() {
for ( var i = 0 ; i < 9 ; i++ ) {
a [i].style.background = 'rgb(95,192,205)'

}
fei();
},1000);
}
btow.onclick = function cs2(){
clearInterval(myvar);
for (var i = 0 ; i < 9 ; i++ ){
a [i].style.background = 'rgb(95,192,205)'

}
}



var 意思是创建一个变量在js里面也是声明一个变量

var name(这里名字你可以任意更改) = 1; 这意思就是创建一个name的变量并且赋予它值为1.如果要想创建变量必须要有var进行声明。

var a = document.getElementsByClassName("color"):意思就是创建一个a 的变量赋予右边的值。

document.getElementsByClassName("color");意思是获取所值类的名的元素。大概理解就是我每创建css选择类 都会给他独一无二的类名。这就是获取它里面的类名元素为准备更改它里面的属性而用的。

document.getElementById("bone");和上面的一样只是它是获取ID类名颜色而上面的是获取选择类的元素。

这里要注意:你在选择获取类名的时候要注意它是ID类名还是选择器类名,JS获取类名语法是不一样的。

function name() 意思是声明一个函数,function后面的名字你可以随意取当必须有()号,你可以把理解为类似css ID或者类选择器,然后在里面赋值,在声明函数后里面会写一些属性值或者判断语句等。

js随机数知识点

Math.ceil(n);  //向上取整。返回大于等于n的最小整数。

Math.floor(n);  //向下取整。返回为n的整数部分。

Math.round(n);  //四舍五入。返回为n四舍五入后的整数。

Math.random(n);  //0.0 ~ 1.0 之间的一个伪随机数。【包含0,不包含1】 //比如0.8647578968666494

Math.ceil(Math.random()*10);      // 获取从1到10的随机整数 ,取0的概率极小。

Math.floor(Math.random()*10);    //可均衡获取0到9的随机整数

Math.round(Math.random());   //可均衡获取0或1的随机整数。(因为random()生成的是0-1的数,四舍五入后只有0或1)

Math.round(Math.random()*10);  //基本均衡获取0到10的随机整数,其中获取最小值0和最大值10的几率少一半

参考:https://www.cnblogs.com/mq0036/p/9139231.html

var one = Math.floor(Math.random()*9); 意思就是 我声明一ONE 变量 让左边的随机数生成的从0到9的随机整数 的整数赋值给one。

if .... eles 语句(条件语句)

是用来判断符不符合当前条件符合那就if(){  输出符合值 } elese{ 输出不符合的值  }。

style

  意思是属性指定了指定其元素的样式信息。与html中style属性相同。

  大概解释就是,一开始不是已经声明的了变量调用类选择器名称的元素吗?这个就可以理解是调用这个类选择器中的具体元素值比如我写的,a [one].style.background = ‘rgb’

因为选择类是个数组 我在HTNL创建了9个div 他们的类都是 color 那我具体改那个呢 ,比如

a[0]~a[8]就是选择从我创建的9个div 从1到9改变它的背景颜色。


JS定时器

  • setInterval() :按照指定的周期(以毫秒计)来调用函数或计算表达式。方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。

参考资料:https://www.runoob.com/jsref/met-win-clearinterval.html

这里要注意下

bone.onclick = function cs(){
myvar = setIntervalfunction() {
for ( var i = 0 ; i < 9 ; i++ ) {
a [i].style.background = 'rgb(95,192,205)'


}


onclick意思 就是当按钮点击后执行JS代码,可以理解为伪类改变属性。

如果你在函数里面执行定时器 那么它的变量myvar要在最外面声明如果你在{}里面声明那么它的变量只能在里面进行执行而且就算你用learInterval() 关闭过一秒也会自动执行,而且learInterval() 执行要必须有 setInterval()里面的变量如clearInterval(myvar); 如果变量在{}里面声明那么clearInterval(myvar);里面的myvar变量就会失效用不了。


返回列表 返回列表
评论

    分享到