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 相关文章推荐
Jquery练习之表单验证实现代码
Dec 14 Javascript
JavaScript中如何通过arguments对象实现对象的重载
May 12 Javascript
jQuery的promise与deferred对象在异步回调中的作用
May 03 Javascript
BootStrap fileinput.js文件上传组件实例代码
Feb 20 Javascript
vue-resource拦截器设置头信息的实例
Oct 27 Javascript
从零开始最小实现react服务器渲染详解
Jan 26 Javascript
vue项目每30秒刷新1次接口的实现方法
Dec 04 Javascript
ES6 对象的新功能与解构赋值介绍
Feb 05 Javascript
node Buffer缓存区常见操作示例
May 04 Javascript
vue视频播放暂停代码
Nov 08 Javascript
JavaScript如何使用插值实现图像渐变
Jun 28 Javascript
video.js添加自定义组件的方法
Dec 09 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
在Mac OS上搭建Nginx+PHP+MySQL开发环境的教程
2015/12/21 PHP
PHP缩略图生成和图片水印制作
2017/01/07 PHP
原生js实现淘宝首页点击按钮缓慢回到顶部效果
2014/04/06 Javascript
Nodejs实现批量下载妹纸图
2015/05/28 NodeJs
基于JavaScript实现根据手机定位获取当前具体位置(X省X市X县X街道X号)
2015/12/29 Javascript
理解javascript正则表达式
2016/03/08 Javascript
Javascript动画效果(4)
2016/10/11 Javascript
React组件中的this的具体使用
2018/02/28 Javascript
JavaScript函数的特性与应用实践深入详解
2018/12/30 Javascript
微信小程序使用npm包的方法步骤
2019/08/13 Javascript
JavaScript canvas实现跟随鼠标事件
2020/02/10 Javascript
python读取注册表中值的方法
2013/04/08 Python
python高并发异步服务器核心库forkcore使用方法
2013/11/26 Python
python使用MySQLdb访问mysql数据库的方法
2015/08/03 Python
python实现的多线程端口扫描功能示例
2017/01/21 Python
PyQt5每天必学之日历控件QCalendarWidget
2018/04/19 Python
matplotlib.pyplot画图 图片的二进制流的获取方法
2018/05/24 Python
django的settings中设置中文支持的实现
2019/04/28 Python
python3的UnicodeDecodeError解决方法
2019/12/20 Python
Django 拼接两个queryset 或是两个不可以相加的对象实例
2020/03/28 Python
python 读取二进制 显示图片案例
2020/04/24 Python
详解pandas.DataFrame.plot() 画图函数
2020/06/14 Python
Python实现简单的猜单词小游戏
2020/10/28 Python
Python 用__new__方法实现单例的操作
2020/12/11 Python
跑步爱好者一站式服务网站:Jack Rabbit
2016/09/01 全球购物
新加坡交友网站:be2新加坡
2019/04/10 全球购物
行政前台岗位职责
2013/12/04 职场文书
工程类专业自荐信范文
2014/03/09 职场文书
大学生两会学习心得体会
2014/03/10 职场文书
宝宝满月酒主持词和仪式流程
2014/03/27 职场文书
文明倡议书范文
2014/04/15 职场文书
渠道运营商合作协议书范本
2014/10/06 职场文书
公安机关党的群众路线教育实践活动剖析材料
2014/10/10 职场文书
交通事故协议书范本
2014/11/18 职场文书
排球赛新闻稿
2015/07/17 职场文书
Spring Boot配合PageHelper优化大表查询数据分页
2022/04/20 Java/Android