js实现金山打字通小游戏


Posted in Javascript onJuly 24, 2020

本文实例为大家分享了js实现金山打字通小游戏的具体代码,供大家参考,具体内容如下

字母匀速随机下落,键盘按下对应字母按键,字母消失重新生成新字母,新字母可帮助回调一部分初始高度

效果

js实现金山打字通小游戏

1.页面内容

列表内放字母

<ul id="box">
 <li></li>
 <li>A</li>
 </ul>

**

2.页面样式
**

1)清除li园标
2)确定列表位置,为字母随机位置下降准备

*{
 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、获得兼容性对象

var ev=window.event||e;

3.获得按下的键盘码并转换为对应按键

var key=String.fromCharCode(ev.keyCode);

4.遍历获得列表内容对比

1)循环li标签

for(var i=0;i<list.length;i++){ }

2)内容对比

if(list[i].innerHTML==key){  }

3)相同则删除页面上显示的字母

box.removeChild(list[i]);

5.清除字母后重新生成新的随机字母

1)在字母表中获得随机字母

var num=Math.floor(Math.random()*(all.length-1+1-0)+0);

2)将随机字母加入li中

var new_list=document.createElement('li');

3)给新li进行赋值

new_list.innerHTML=all[num];

4)将新li加入ul中

box.appendChild(new_list);

6.定时字母下落

1)设置定时器

var time=setInterval(function(){ },1000)

2)方法参考浮动广告博文

7.新字母的位置随机生成

1)消除成功后高度向上缩一部分
2)左右利用随机数生成

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){
// 获得兼容性对象
 var ev=window.event||e;
// 获得按下的按键并转换为对应按键
 var key=String.fromCharCode(ev.keyCode);
 var list=document.getElementById("box").getElementsByTagName('li');
// 循环li标签,将按键与标签内容进行对比
 for(var i=0;i<list.length;i++){
// 内容对比,内容相同则删除页面上显示的字母
  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);
//  将随机字母加入li中  
  var new_list=document.createElement('li');
//  给新li进行赋值
  new_list.innerHTML=all[num];
//  将新li加入ul中
  box.appendChild(new_list);
  }
 }
 
 }
 
// 定时器保证下落速度
 var time=setInterval(function(){
// 获取ul的老位置
 var old_top=box.offsetTop;
// 计算ul的新位置
 var new_top=old_top+2;
// 将新值赋值回去
 box.style.top=new_top+"px";
 },15)
 
 </script>
 </body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
一些技巧性实用js代码小结
Oct 14 Javascript
js文件中调用js的实现方法小结
Oct 23 Javascript
为什么Node.js会这么火呢?Node.js流行的原因
Dec 01 Javascript
JavaScript 事件绑定及深入
Apr 13 Javascript
getElementById().innerHTML与getElementById().value的区别
Oct 27 Javascript
利用JS实现简单的日期选择插件
Jan 23 Javascript
JS实现留言板功能
Jun 17 Javascript
vue实现仿淘宝结账页面实例代码
Nov 08 Javascript
AngularJS基于http请求实现下载php生成的excel文件功能示例
Jan 23 Javascript
Vue实现表格中对数据进行转换、处理的方法
Sep 06 Javascript
Vue动态路由缓存不相互影响的解决办法
Feb 19 Javascript
layui使用及简单的三级联动实现教程
Dec 01 Javascript
vuex中store存储store.commit和store.dispatch的用法
Jul 24 #Javascript
js实现滑动滑块验证登录
Jul 24 #Javascript
解决VUEX的mapState/...mapState等取值问题
Jul 24 #Javascript
对vuex中store和$store的区别说明
Jul 24 #Javascript
小程序实现简单语音聊天的示例代码
Jul 24 #Javascript
浅谈Vuex的this.$store.commit和在Vue项目中引用公共方法
Jul 24 #Javascript
vue中全局路由守卫中替代this操作(this.$store/this.$vux)
Jul 24 #Javascript
You might like
火车头discuz6.1 完美采集的php接口文件
2009/09/13 PHP
php做下载文件的实现代码及文件名中乱码解决方法
2011/02/03 PHP
php自动加载autoload机制示例分享
2014/02/20 PHP
Javascript实现滑块滑动改变值的实现代码
2013/04/12 Javascript
表单类各种类型(文本框)失去焦点效果jquery代码
2013/04/26 Javascript
JavaScript中的常见问题解决方法(乱码,IE缓存,代理)
2013/11/28 Javascript
jquery插件jTimer(jquery定时器)使用方法
2013/12/23 Javascript
jQuery插件PageSlide实现左右侧栏导航菜单
2015/04/12 Javascript
谈谈JavaScript异步函数发展历程
2015/09/29 Javascript
javascript实现2016新年版日历
2016/01/25 Javascript
DIV随滚动条滚动而滚动的实现代码【推荐】
2016/04/12 Javascript
Angular多选、全选、批量选择操作实例代码
2017/03/10 Javascript
微信小程序 侧滑删除(左滑删除)
2017/05/23 Javascript
javascript中mouseenter与mouseover的异同
2017/06/06 Javascript
聊聊那些使用前端Javascript实现的机器学习类库
2017/09/18 Javascript
使用sessionStorage解决vuex在页面刷新后数据被清除的问题
2018/04/13 Javascript
react build 后打包发布总结
2018/08/24 Javascript
js实现倒计时器自定义时间和暂停
2019/02/25 Javascript
基于vue-cli 路由 实现类似tab切换效果(vue 2.0)
2019/05/08 Javascript
如何在wxml中直接写js代码(wxs)
2019/11/14 Javascript
JavaScript 实现下雪特效的示例代码
2020/09/09 Javascript
python教程之用py2exe将PY文件转成EXE文件
2014/06/12 Python
Python的时间模块datetime详解
2017/04/17 Python
基于Python对象引用、可变性和垃圾回收详解
2017/08/21 Python
Python基于pycrypto实现的AES加密和解密算法示例
2018/04/10 Python
Python函数和模块的使用总结
2019/05/20 Python
python中绕过反爬虫的方法总结
2020/11/25 Python
python3实现简单飞机大战
2020/11/29 Python
Expedia丹麦:全球领先的旅游网站
2018/03/18 全球购物
办公室主任竞聘演讲稿
2014/05/15 职场文书
佛光寺导游词
2015/02/10 职场文书
2015年前台个人工作总结
2015/04/03 职场文书
团组织推荐意见
2015/06/05 职场文书
廉洁自律证明
2015/06/24 职场文书
手残删除python之后的补救方法
2021/06/26 Python
世界各国短波电台对东亚播送时间频率表(SW)
2021/06/28 无线电