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 函数内部属性
Jan 21 Javascript
jQuery控制div实现随滚动条滚动效果
Jun 07 Javascript
jQuery表单验证之密码确认
May 22 jQuery
Vue Transition实现类原生组件跳转过渡动画的示例
Aug 19 Javascript
Gulp实现静态网页模块化的方法详解
Jan 09 Javascript
angularJs 表格添加删除修改查询方法
Feb 27 Javascript
JS实现的合并多个数组去重算法示例
Apr 11 Javascript
css配合JavaScript实现tab标签切换效果
Oct 11 Javascript
p5.js临摹动态图形实现方法详解
Oct 23 Javascript
优化Vue中date format的性能详解
Jan 13 Javascript
JS实现网页烟花动画效果
Mar 10 Javascript
JavaScript中作用域链的概念及用途讲解
Aug 06 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
php 错误处理经验分享
2011/10/11 PHP
PHP Switch 语句之学习笔记
2013/09/21 PHP
深入理解Yii2.0乐观锁与悲观锁的原理与使用
2017/07/26 PHP
php制作圆形用户头像的实例_自定义封装类源代码
2017/09/18 PHP
Javascript的一种模块模式
2008/03/22 Javascript
js隐式全局变量造成的bug示例代码
2014/04/22 Javascript
Nginx上传文件全部缓存解决方案
2015/08/17 Javascript
JQuery 传送中文乱码问题的简单解决办法
2016/05/24 Javascript
Vue.js基础学习之class与样式绑定
2017/03/20 Javascript
详细讲解vue2+vuex+axios
2017/05/27 Javascript
vue源码学习之Object.defineProperty 对数组监听
2018/05/30 Javascript
新手必须知的Node.js 4个JavaScript基本概念
2018/09/16 Javascript
Element输入框带历史查询记录的实现示例
2019/01/15 Javascript
实例讲解v-if和v-show的区别
2019/01/31 Javascript
vue通过v-html指令渲染的富文本无法修改样式的解决方案
2020/05/20 Javascript
vue打包npm run build时候界面报错的解决
2020/08/13 Javascript
vue使用vant中的checkbox实现全选功能
2020/11/17 Vue.js
python实现sublime3的less编译插件示例
2014/04/27 Python
python检测某个变量是否有定义的方法
2015/05/20 Python
python线程池(threadpool)模块使用笔记详解
2017/11/17 Python
Python实现的选择排序算法原理与用法实例分析
2017/11/22 Python
5款非常棒的Python工具
2018/01/05 Python
Python环境Pillow( PIL )图像处理工具使用解析
2019/09/12 Python
python实现企业微信定时发送文本消息的实例代码
2020/11/25 Python
英国的屈臣氏:Boots博姿
2017/12/23 全球购物
来自世界各地的饮料:Flavourly
2019/05/06 全球购物
软件生产职位结构化面试主要考察要素及面试题库
2015/06/12 面试题
Servlet都有哪些方法?主要作用是什么?
2014/03/04 面试题
促销活动策划方案
2014/01/12 职场文书
尊师重教演讲稿
2014/09/04 职场文书
试用期辞职信范文
2015/03/02 职场文书
我是特种兵观后感
2015/06/11 职场文书
幼儿园毕业典礼园长致辞
2015/07/29 职场文书
HTML5 语义化标签(移动端必备)
2021/08/23 HTML / CSS
JS数组去重详情
2021/11/07 Javascript
Python基础 括号()[]{}的详解
2021/11/07 Python