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的简单九宫格实现代码
Aug 09 Javascript
jQuery.Validate验证库的使用介绍
Apr 26 Javascript
点击页面其它地方隐藏该div的两种思路
Nov 18 Javascript
jquery插件推荐浏览器嗅探userAgent
Nov 09 Javascript
javascript实现漂亮的拖动层,窗口拖拽特效
Apr 24 Javascript
使用jQuery Rotare实现微信大转盘抽奖功能
Jun 20 Javascript
JavaScript实现定时页面跳转功能示例
Feb 14 Javascript
js实现简单的二级联动效果
Mar 09 Javascript
基于JavaScript实现的插入排序算法分析
Apr 14 Javascript
vue-cli+webpack在生成的项目中使用bootstrap实例代码
May 26 Javascript
layui前端时间戳转化实例
Nov 15 Javascript
JS实现鼠标移动拖尾
Dec 27 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实现小型站点广告管理(修正版)
2006/10/09 PHP
php笔记之:有规律大文件的读取与写入的分析
2013/04/26 PHP
php实例分享之html转为rtf格式
2014/06/02 PHP
常用PHP封装分页工具类
2017/01/14 PHP
jquery.boxy插件的iframe扩展代码
2010/07/02 Javascript
自写简单JS判断是否已经弹出页面
2010/10/20 Javascript
基于Jquery的表格隔行换色,移动换色,点击换色插件
2010/12/22 Javascript
js弹出div并显示遮罩层
2014/02/12 Javascript
javascript实现汉字转拼音代码分享
2015/04/20 Javascript
jquery实现漫天雪花飞舞的圣诞祝福雪花效果代码分享
2015/08/20 Javascript
jquery实现可旋转可拖拽的文字效果代码
2016/01/27 Javascript
JS实现六边形3D拖拽翻转效果的方法
2016/09/11 Javascript
浅谈vue项目重构技术要点和总结
2018/01/23 Javascript
JS实现的JSON数组去重算法示例
2018/04/11 Javascript
vue-resource请求实现http登录拦截或者路由拦截的方法
2018/07/11 Javascript
vue项目中将element-ui table表格写成组件的实现代码
2019/06/12 Javascript
微信小程序实现收货地址左滑删除
2020/11/18 Javascript
快速解决layui弹窗按enter键不停弹窗的问题
2019/09/18 Javascript
[05:31]干嘛呢兄弟!DOTA2 TI9语音轮盘部分出处
2019/05/14 DOTA
Python利用Beautiful Soup模块创建对象详解
2017/03/27 Python
Numpy array数据的增、删、改、查实例
2018/06/04 Python
python基于http下载视频或音频
2018/06/20 Python
Python一句代码实现找出所有水仙花数的方法
2018/11/13 Python
Centos7 下安装最新的python3.8
2019/10/28 Python
Python进程Multiprocessing模块原理解析
2020/02/28 Python
python中pyplot基础图标函数整理
2020/11/10 Python
使用HTML5 Geolocation实现一个距离追踪器
2018/04/09 HTML / CSS
预备党员党课思想汇报
2014/01/13 职场文书
服装设计专业自荐信
2014/06/17 职场文书
作风年建设汇报材料
2014/08/14 职场文书
普宁寺导游词
2015/02/04 职场文书
2015年销售内勤工作总结
2015/04/27 职场文书
保险公司反洗钱宣传活动总结
2015/05/08 职场文书
CSS3新特性详解(五):多列columns column-count和flex布局
2021/04/30 HTML / CSS
解决tk mapper 通用mapper的bug问题
2021/06/16 Java/Android
Win11无法安装更新补丁KB3045316怎么办 附KB3045316补丁修复教程
2022/08/14 数码科技