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 相关文章推荐
深入理解JavaScript系列(4) 立即调用的函数表达式
Jan 15 Javascript
js弹出层包含flash 不能关闭隐藏的2种处理方法
Jun 17 Javascript
如何使用JS获取IE上传文件路径(IE7,8)
Jul 08 Javascript
javascript实现的右下角弹窗实例
Apr 24 Javascript
原生JavaScript制作微博发布面板效果
Mar 11 Javascript
Jquery针对tr td的一些实用操作方法(必看篇)
Oct 05 Javascript
Node.js下自定义错误类型详解
Oct 17 Javascript
js 中文汉字转Unicode、Unicode转中文汉字、ASCII转换Unicode、Unicode转换ASCII、中文转换
Dec 06 Javascript
AngularJS $http模块POST请求实现
Apr 08 Javascript
Vue 2中ref属性的使用方法及注意事项
Jun 12 Javascript
Vue-cli3多页面配置详解
Mar 22 Javascript
vuex刷新后数据丢失的解决方法
Oct 18 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
drupal 代码实现URL重写
2011/05/04 PHP
php接口和抽象类使用示例详解
2014/03/02 PHP
PHP中file_exists函数不支持中文名的解决方法
2014/07/26 PHP
PHP调用MySQL存储过程并返回值的方法
2014/12/26 PHP
php 常用的系统函数
2017/02/07 PHP
javascript replace方法与正则表达式
2008/02/19 Javascript
关于javascript中的parseInt使用技巧
2009/09/03 Javascript
基于jquery的动态创建表格的插件
2011/04/05 Javascript
可插入图片的TEXT文本框
2013/12/27 Javascript
Vue项目使用CDN优化首屏加载问题
2018/04/01 Javascript
jQuery实现table表格checkbox全选的方法分析
2018/07/04 jQuery
vue配置文件实现代理v2版本的方法
2019/06/21 Javascript
Python实现的多线程端口扫描工具分享
2015/01/21 Python
Python3爬虫学习之将爬取的信息保存到本地的方法详解
2018/12/12 Python
python重试装饰器的简单实现方法
2019/01/31 Python
pytorch使用Variable实现线性回归
2019/05/21 Python
pyqt5 实现在别的窗口弹出进度条
2019/06/18 Python
Python使用lambda表达式对字典排序操作示例
2019/07/25 Python
Python模块的制作方法实例分析
2019/12/21 Python
python GUI库图形界面开发之PyQt5拖放控件实例详解
2020/02/25 Python
python获取时间戳的实现示例(10位和13位)
2020/09/23 Python
如何通过python计算圆周率PI
2020/11/11 Python
快速一键生成Python爬虫请求头
2021/03/04 Python
麦德龙官方海外旗舰店:德国麦德龙超市
2017/12/23 全球购物
白俄罗斯大卖场:21vek.by
2019/07/25 全球购物
俄语地区最大的中国商品在线购物网站之一:Umka Mall
2019/11/03 全球购物
设计总监岗位职责
2013/12/07 职场文书
中药专业毕业自荐书范文
2014/02/08 职场文书
人力资源本科毕业生求职信
2014/06/04 职场文书
2014年护士个人工作总结
2014/11/11 职场文书
2014年电厂工作总结
2014/12/04 职场文书
员工辞职信范文
2015/03/02 职场文书
《家》读后感:万惜拯救,冷暖自知
2019/09/25 职场文书
Python中OpenCV实现简单车牌字符切割
2021/06/11 Python
js 数组 fill() 填充方法
2021/11/02 Javascript
MySQL外键约束(Foreign Key)案例详解
2022/06/28 MySQL