js實(shí)現(xiàn)金山打字通小游戲
本文實(shí)例為大家分享了js實(shí)現(xiàn)金山打字通小游戲的具體代碼,供大家參考,具體內(nèi)容如下
字母勻速隨機(jī)下落,鍵盤按下對(duì)應(yīng)字母按鍵,字母消失重新生成新字母,新字母可幫助回調(diào)一部分初始高度
效果

1.頁(yè)面內(nèi)容
列表內(nèi)放字母
<ul id="box"> <li></li> <li>A</li> </ul>
**
2.頁(yè)面樣式
**
1)清除li園標(biāo)
2)確定列表位置,為字母隨機(jī)位置下降準(zhǔn)備
*{
padding: 0;
margin: 0;
}
#box li{
list-style: none;
font-size: 100px;
}
/*確定位置便于下降*/
#box{
position: absolute;
top: 0;
left: 0;
}
3.判斷按的按鍵
1、鍵盤按鍵按下事件
window.onkeydown=function(e){ }
2、獲得兼容性對(duì)象
var ev=window.event||e;
3.獲得按下的鍵盤碼并轉(zhuǎn)換為對(duì)應(yīng)按鍵
var key=String.fromCharCode(ev.keyCode);
4.遍歷獲得列表內(nèi)容對(duì)比
1)循環(huán)li標(biāo)簽
for(var i=0;i<list.length;i++){ }
2)內(nèi)容對(duì)比
if(list[i].innerHTML==key){ }
3)相同則刪除頁(yè)面上顯示的字母
box.removeChild(list[i]);
5.清除字母后重新生成新的隨機(jī)字母
1)在字母表中獲得隨機(jī)字母
var num=Math.floor(Math.random()*(all.length-1+1-0)+0);
2)將隨機(jī)字母加入li中
var new_list=document.createElement('li');
3)給新li進(jìn)行賦值
new_list.innerHTML=all[num];
4)將新li加入ul中
box.appendChild(new_list);
6.定時(shí)字母下落
1)設(shè)置定時(shí)器
var time=setInterval(function(){ },1000)
2)方法參考浮動(dòng)廣告博文
7.新字母的位置隨機(jī)生成
1)消除成功后高度向上縮一部分
2)左右利用隨機(jī)數(shù)生成
var left=Math.floor(Math.random()*(1000-1+1-0)+0); box.style.left=left+"px";
8.源碼
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style>
*{
padding: 0;
margin: 0;
}
#box li{
list-style: none;
font-size: 100px;
}
/*確定位置便于下降*/
#box{
position: absolute;
top: 0;
left: 0;
}
</style>
</head>
<body>
<ul id="box">
<li></li>
<li>A</li>
</ul>
<script>
var p=document.getElementById("p");
var new_box=document.getElementById("new_box");
var box=document.getElementById("box");
var all='ABCDEFGHIJQLMEOPQRSTUVWXYZ';
window.onkeydown=function(e){
// 獲得兼容性對(duì)象
var ev=window.event||e;
// 獲得按下的按鍵并轉(zhuǎn)換為對(duì)應(yīng)按鍵
var key=String.fromCharCode(ev.keyCode);
var list=document.getElementById("box").getElementsByTagName('li');
// 循環(huán)li標(biāo)簽,將按鍵與標(biāo)簽內(nèi)容進(jìn)行對(duì)比
for(var i=0;i<list.length;i++){
// 內(nèi)容對(duì)比,內(nèi)容相同則刪除頁(yè)面上顯示的字母
if(list[i].innerHTML==key){
box.removeChild(list[i]);
var p_old_top=box.offsetTop;
var p_new_top=p_old_top-150;
box.style.top=p_new_top+"px";
var left=Math.floor(Math.random()*(1000-1+1-0)+0);
box.style.left=left+"px";
var num=Math.floor(Math.random()*(all.length-1+1-0)+0);
// 將隨機(jī)字母加入li中
var new_list=document.createElement('li');
// 給新li進(jìn)行賦值
new_list.innerHTML=all[num];
// 將新li加入ul中
box.appendChild(new_list);
}
}
}
// 定時(shí)器保證下落速度
var time=setInterval(function(){
// 獲取ul的老位置
var old_top=box.offsetTop;
// 計(jì)算ul的新位置
var new_top=old_top+2;
// 將新值賦值回去
box.style.top=new_top+"px";
},15)
</script>
</body>
</html>
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
JS實(shí)現(xiàn)網(wǎng)頁(yè)端猜數(shù)字小游戲
這篇文章主要為大家詳細(xì)介紹了JS實(shí)現(xiàn)網(wǎng)頁(yè)端猜數(shù)字小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-03-03
JavaScript處理變量命名的參數(shù)對(duì)象
這篇文章主要介紹了JavaScript處理變量命名的參數(shù)對(duì)象,在開發(fā)過(guò)程中,遇到一個(gè)給對(duì)象賦值的問(wèn)題,參數(shù)是通過(guò)循環(huán)變量的方式進(jìn)行處理,接下來(lái)詳細(xì)介紹需要的小伙伴可以參考一下2022-06-06
整理JavaScript創(chuàng)建對(duì)象的八種方法
JavaScript創(chuàng)建對(duì)象的方法有很多種,本文給大家介紹javascript創(chuàng)建對(duì)象的八種方法,對(duì)javascript創(chuàng)建對(duì)象感興趣的朋友可以參考下本篇文章2015-11-11
JavaScript 5 新增 Array 方法實(shí)現(xiàn)介紹
JavaScript 5 發(fā)布有一段時(shí)間了,Array 對(duì)象新增了很多方法。但在老版本的瀏覽器上還不能使用,得益于 JavaScript 的動(dòng)態(tài)可擴(kuò)展性,我實(shí)現(xiàn)了這些方法,在此曬出來(lái)與君共勉2012-02-02
JS動(dòng)態(tài)添加與刪除select中的Option對(duì)象(示例代碼)
本篇文章主要介紹了JS動(dòng)態(tài)添加與刪除select中的Option對(duì)象(示例代碼) 需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2013-12-12
js實(shí)現(xiàn)文本上下來(lái)回滾動(dòng)
本文主要分享了js實(shí)現(xiàn)文本上下來(lái)回滾動(dòng)的示例代碼。具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧2017-02-02
JavaScript獲取網(wǎng)頁(yè)表單提交方式的方法
這篇文章主要介紹了JavaScript獲取網(wǎng)頁(yè)表單提交方式的方法,可判斷表單提交方式是get還是post,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-04-04
微信小程序?qū)崿F(xiàn)簡(jiǎn)單的購(gòu)物車功能
這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)簡(jiǎn)單的購(gòu)物車功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-07-07

