发表于: 2017-04-05 21:20:01

1 1168


今天完成的事情:完成任务一,JS的点击事件,延时时间,取消延时,各种math等
明天计划的事情:开始学习任务二
遇到的问题:1.在刚开始写点击事件的时候,一直无法成功,调试发现外链文件一直失败。后来发现是js外链的位置放置到了html文件顶端,导致失败。在加健师兄的帮助下,知道了监听点击事件的获取ID的时候已经找到并且绑定了该ID,而不是运行的才开始寻找ID。所以在读取script的时候,getElementById(123)找不到123这个ID,就获取失败。修改方法可以将script放在body最后,也可以在script中加入defer(在页面读取完成后再读取该文件)。

2.dom获得html元素可以使用getElementById(id),getElementByClassName(class),getElementByTagName(p/span/ul etc...)三种方式来获取,依照html里想获取的元素的定义来获取。

3.在写随机选取三个小方块的时候,采用数组获取三个math。random()*8的数,再转化为INT类型比较三个数是否两两相同,如果相同,则重新计算,如果不同,则退出循环,获得三个数。

而颜色获取也是相似的方法,只是判定的时候判定三个颜色组合起来是否和背景色相同以及出现的三个颜色是否相同。

4.setTimeOut(对象,X000)是对对象设置一个在X秒以后执行一次的单次延时命令

setInterval(对象,x000)是对对象设置一个在X秒以后执行一次,并且每X秒都执行一次的循环命令

两个命令都可以用clearTimeOut(对象)和clearInterval(对象)清除。

5.在整个页面效果设定好了以后,疯狂连击开始,会让延时效果叠加,导致方块出现时间变短,从而进入闪瞎眼模式。在和少华师兄李婷师姐讨论后,在每次改变颜色的事件中加入了清除延时和清除颜色事件,让变色进入一种循环 : 

点击——执行改变颜色事件——执行清除颜色——执行清除延迟——执行改变颜色——执行延迟效果——循环——执行清除颜色,从而达到每一秒都会清理一次颜色和延迟,让循环内的颜色或者延迟不叠加。

6.如果设置局部变量,在另一个函数中就不能使用该变量名称。如果设置全局变量,在一个局部变量中使用后,赋值后,另一个函数也能调用新赋值的该变量。像延迟函数就可以需要使用全局变量来停止。

收获:JS和C还是不同的好么!!!跳过了一点通用语法,结果后来发现JS不能用X=(int)X强制转换浮点数,需要用X=parseInt(x)转换!


返回列表 返回列表
评论

    分享到