JavaScript实现单英文金山打字通


Posted in Javascript onJuly 24, 2020

单英文的金山打字通的具体实现代码,供大家参考,具体内容如下

1、页面的布局代码如下:

<div> 
 <div id="char">A</div>
 <div id="result">请在按键上按下屏幕上显示的字</div>
</div>

2、页面布局的样式代码如下:

body{
 margin: 0;
 /*开启弹性布局,并让弹性布局中的子元素
 水平居中对齐,垂直居中对齐*/
 display: flex;
 /* 用于设置或检索弹性盒子元素在主轴(横轴)方向上的对齐方式 */
 justify-content: center;
 align-items: center;
 /*文字居中*/
 text-align: center;
 /*设置背景颜色的经像渐变*/
 background: radial-gradient(circle,#444,#000,#000);
 }
 #char{
 font-size: 400px;
 color: lightgreen;
 /*设置文字阴影*/  
 /*位置可以为负值*/
 /*text-shadow: 水平位置 垂直位置 模糊距离 阴影颜色*/
 text-shadow: 0 0 50px #666;
 }
 #result{
 font-size: 20px;
 color: #888;
 }
 /*找到id为char及类名为error的div元素*/
 #char.error{
 color: red; 
 }

3、声明变量接收参数

//来保存65~90之间的任意一个随机整数
 var code;
//表示正确的次数
 var okCount = 0;
//错误的次数
 var errorCount = 0;
//获取显示字符的div
 var charBox = document.getElementById('char');
//获取显示结果的div
 var result = document.getElementById('result');

4、写show()方法获取A~Z之间的任意一个字符

function show() {
 //获取[0,1)之间的一个随机数
 var rand = Math.random();
 // //获取一个0到26之间的一个随机数(不包含26)
 code = rand * 26;
 // //Math.floor(a)对数字a向下取整,获取到一个小于等于a最近的整数
 // //获取0~25之间任意一个整数
 code = Math.floor(code);
 // //获取到65~90之间的任意整数
 code = code + 65;

 //把Unicode的十进制编码转化成对应的字符
 //获取A~Z的任意一个字符
 var char = String.fromCharCode(code);
 console.log(char);
 //把字符显示在界面上
 charBox.innerHTML = char;
 }
 show();//调用方法

5、键盘按下来的事件

window.onkeydown = function (ev) {
 //获取按键所对应的Unicode十进制编码
 var key = ev.keyCode;
 //判断按键字母所对应的数字和随机获取的数字是否相等
 if (key == code) {
 //按键正确,正确次数+1
 okCount++;
 //当按键正确时,重新显示新的字符
 show();
 //添加正确的动画 通过js给div添加类名
 charBox.className = 'animated zoomIn';
 } else {
 //按键错误,错误次数+1
 errorCount++;
 //添加按键错误的动画
 charBox.className = 'animated shake error';
 }
 showResult();
 //0.5秒之后清除,动画
 setTimeout(clearAnimated, 500);//红色颜色消失
}

6、负责清除动画的方法

function clearAnimated() { 
 charBox.className = '';
}

7、展示计算的结果

function showResult() {
 var rate = 100 * okCount / (okCount + errorCount);
 //显示正确个数 错误个数 及正确率
 result.innerHTML = '正确' + okCount + '个' + '错误' + errorCount + '个'
 + '正确率' + rate.toFixed(2) + '%';//toFixed(2)保留两位小数
 }

8、效果图

JavaScript实现单英文金山打字通

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

Javascript 相关文章推荐
javascript学习基础笔记之DOM对象操作
Nov 03 Javascript
JavaScript对内存分配及管理机制详细解析
Nov 11 Javascript
jquery为页面增加快捷键示例
Jan 31 Javascript
jQuery Ajax页面局部加载方法汇总
Jun 02 Javascript
利用js定义一个导航条菜单
Mar 14 Javascript
详谈vue+webpack解决css引用图片打包后找不到资源文件的问题
Mar 06 Javascript
js提取中文拼音首字母的封装工具类
Mar 12 Javascript
详解基于Koa2开发微信二维码扫码支付相关流程
May 16 Javascript
vue 项目接口管理的实现
Jan 17 Javascript
layui清空,重置表单数据的实例
Sep 12 Javascript
Node 模块原理与用法详解
May 13 Javascript
在Vue中使用antv的示例代码
Jun 29 Javascript
javascript实现导航栏分页效果
Jun 27 #Javascript
编写更好的JavaScript条件式和匹配条件的技巧(小结)
Jun 27 #Javascript
原生js实现抽奖小游戏
Jun 27 #Javascript
JavaScript实现图片放大镜效果
Jun 27 #Javascript
详解Jest结合Vue-test-utils使用的初步实践
Jun 27 #Javascript
微信小程序自定义组件实现环形进度条
Nov 17 #Javascript
vue + typescript + 极验登录验证的实现方法
Jun 27 #Javascript
You might like
PHP5 安装方法
2007/01/15 PHP
IP攻击升级,程序改进以对付新的攻击
2010/11/23 PHP
完美实现GIF动画缩略图的php代码
2011/01/02 PHP
php写的简易聊天室代码
2011/06/04 PHP
常用的PHP数据库操作方法(MYSQL版)
2011/06/08 PHP
PHP和Mysqlweb应用开发核心技术 第1部分 Php基础-3 代码组织和重用2
2011/07/03 PHP
Uncaught exception com_exception with message Failed to create COM object
2012/01/11 PHP
php实现读取和写入tab分割的文件
2015/06/01 PHP
PHP+ajax分页实例简析
2015/12/07 PHP
thinkphp的dump函数无输出实例代码
2016/11/15 PHP
javascript获取元素CSS样式代码示例
2013/11/28 Javascript
JavaScript中setUTCFullYear()方法的使用简介
2015/06/12 Javascript
Vue.js Ajax动态参数与列表显示实现方法
2016/10/20 Javascript
Javascript实现倒计时时差效果
2017/05/18 Javascript
Vue2.0基于vue-cli+webpack Vuex的用法(实例讲解)
2017/09/15 Javascript
vue获取当前激活路由的方法
2018/03/17 Javascript
jQuery实现获取及设置CSS样式操作详解
2018/09/05 jQuery
详解iframe跨域的几种常用方法(小结)
2019/04/29 Javascript
Vue实现PC端靠边悬浮球的代码
2020/05/09 Javascript
Python简单实现socket信息发送与监听功能示例
2018/01/03 Python
python实现随机漫步算法
2018/08/27 Python
关于Python中定制类的比较运算实例
2019/12/19 Python
Python模块的定义,模块的导入,__name__用法实例分析
2020/01/07 Python
虚拟机下载python是否需要联网
2020/07/27 Python
Python 执行矩阵与线性代数运算
2020/08/01 Python
英国泰坦旅游网站:全球陪同游览,邮轮和铁路旅行
2016/11/29 全球购物
美国浴缸、水槽和水龙头购物网站:Vintage Tub & Bath
2019/11/05 全球购物
CNC数控操作工岗位职责
2013/11/19 职场文书
学校领导班子对照检查材料
2014/08/28 职场文书
党员对照检查材料思想汇报
2014/09/16 职场文书
处级领导班子全部召开专题民主生活会情况汇报
2014/09/27 职场文书
正规欠条模板
2015/07/03 职场文书
如何写好竞聘报告
2019/04/03 职场文书
2019邀请函格式及范文
2019/05/20 职场文书
python3实现Dijkstra算法最短路径的实现
2021/05/12 Python
Window server 2012 R2 AD域的组策略相关设置
2022/04/28 Servers