介绍
这篇文章将为大家详细讲解有关如何使用JS实现打字游戏,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
具体内容如下
<强>第一步:强>页面的排版和布局
1.1实现开始游戏的界面
1.1.1开始游戏
1.1.2游戏说明
& lt; !——游戏开始的界面——比; ,& lt; div id=癵ameStart"比; & lt;才能div id=笆痹诳? lt;/div> & lt;才能div id=癲escribe"在说明& lt;/div> & lt;才能div id=癲es"在打字游戏介绍:点击开始,进入游戏开始界面, ,,通过点击下落的字母可以获得得分和正确率 & lt;才能span id=癱l1"在关闭& lt;/span> & lt;才能/div> & lt;/div>
1.2进入游戏的界面
1.2.1开始按钮,在游戏的暂停
1.2.2结束游戏,在清除掉所有字母元素的定时器,删除字母元素
1.2.3退出游戏——祝辞退出到游戏开始的界面
1.2.4设置,在设置当前游戏的难度
1.2.5打字得分——在每打对一字,得一分
打相对于1.2.6字正确率
operate.onclick =, function (evt), { var 才能;e =, evt | |, window.event; var 才能;target =, e.srcElement | |, e。target;//,才能目标:当前事件的目标dom节点//才能,如果(==target.className “t") {//,才能,gameStart.style.display =,“block";//,才能,game.style.display =,“none";//才能,} 如果才能(target.className ==皊et") { ,,sel.style.display =,“block"; ,,}//,才能进入游戏界面之后的开始游戏//才能,目标元素的名称==如果才能(target.className ==皊") { ,,target.innerHTML =, target.innerHTML ==,“开始“?“暂停“:“开始“; ,,如果(target.innerHTML ==,“开始“){ ,,,operate.lastElementChild.style.cursor =,“pointer"; ,,,clearInterval (c); ,,,c =,定义; ,,,clearAllLetters (); 其他,,}{ ,,,//游戏的开始 ,,,operate.lastElementChild.style.cursor =,“not-allowed"; ,,,//控制单位时间内字母的多少的定时器 ,,c =, setInterval (function (), { ,,,createLetter (); ,,,letterEles =, document.getElementsByClassName (“active"); ,,},等级* 1000);//控制显示页面字母的多少 ,,,//暂停之后的开始游戏 ,,,gameStar (); ,,} ,,} ,//处理结束游戏 如果才能(==target.className “f") { ,才能完成(); ,,} ,//处理退出游戏 如果才能(==target.className “t") { ,//才能,首先处理结束游戏要做的事情 ,才能完成();//,才能显示游戏开始界面,隐藏进入游戏界面 ,,game.style.display =,“none"; ,,gameStart.style.display =,“block"; ,,} 以前,}>在对四个跨越即开始,设置,结束,退出加事件时用到了事件委托,事件委托有哪些好处呢?
事件委托一般用在对很多dom添加事件处理的情况中,比如:有100个,每个李都有相同的onclick事件,我们一般会用的循环来遍历所有的,然后给它们添加事件。但这种方法要不断与dom节点进行交互,访问dom的次数越多,浏览器重绘和重排的次数也越多,就会延长整个页面的交互就绪时间,事件委托的原理就是事件冒泡原理,即从最深的节点开始,一步一步向上传播事件,比如,有一个dom树,div> ul>李要给李添加点击事件,那么这个点击事件会一层一层往外执行,执行到div上。使用事件委托的话,就可以对它的父级元素进行操作,与dom的操作只需交互一次,大大提高了性能,举个例子吧:
& lt; ul id=癱n"比; ,& lt; li> qwe ,& lt; li> q2w ,& lt; li> wee ,& lt; li> eer ,& lt; li> ewe & lt;/ul>window (),=, function (), { ,var ul =, . getelementbyid (“cn"); ,var li =, ul.getElementsByTagName(& # 39;李# 39;); ,(int 小姐:=,0;小姐:& lt;, li.length;我+ +){ ,警报(1212); ,} }首先找到ul,然后遍历,点击李的时候,又要找到目标李的位置,才能执行最后的操作,每次点击都要找一次李。性能很低。
采用事件委托优化的代码:
window (),=, function (), { ,var ul =, . getelementbyid (“cn");=,,ul.onclick  function (), {, ,警报(& # 39;1220 & # 39;); ,} }如何使用JS实现打字游戏