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 相关文章推荐
用一段js程序来实现动画功能
Mar 06 Javascript
JavaScript如何从listbox里同时删除多个项目
Oct 12 Javascript
jquery实现点击变换导航样式的方法
Aug 31 Javascript
node.js+express制作网页计算器
Jan 17 Javascript
Bootstrap每天必学之滚动监听
Mar 16 Javascript
JS基于ocanvas插件实现的简单画板效果代码(附demo源码下载)
Apr 05 Javascript
Adapter适配器模式在JavaScript设计模式编程中的运用分析
May 18 Javascript
使用UrlConnection实现后台模拟http请求的简单实例
Jan 04 Javascript
jQuery中$原理实例分析
Aug 13 jQuery
Vue+Element实现表格编辑、删除、以及新增行的最优方法
May 28 Javascript
功能完善的小程序日历组件的实现
Mar 31 Javascript
JS+CSS实现动态时钟
Feb 19 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
彻底杜绝PHP的session cookie错误
2009/08/09 PHP
PHP 第二节 数据类型之字符串类型
2012/04/28 PHP
php截取中文字符串不乱码的方法
2013/12/25 PHP
PHP中$_FILES的使用方法及注意事项说明
2014/02/14 PHP
PHP Oauth授权和本地加密实现方法
2016/08/12 PHP
swoole_process实现进程池的方法示例
2018/10/29 PHP
PHP添加PNG图片背景透明水印操作类定义与用法示例
2019/03/12 PHP
js 数组操作代码集锦
2009/04/28 Javascript
用javascript获取当页面上鼠标光标位置和触发事件的对象的代码
2009/12/09 Javascript
html中table数据排序的js代码
2011/08/09 Javascript
js实现拖拽 闭包函数详细介绍
2012/11/25 Javascript
Jquery中offset()和position()的区别分析
2015/02/05 Javascript
jquery简单实现带渐显效果的选项卡菜单代码
2015/09/01 Javascript
简单实现的JQuery文本框水印插件
2016/06/14 Javascript
Jil,高效的json序列化和反序列化库
2017/02/15 Javascript
nodejs连接mysql数据库简单封装示例-mysql模块
2017/04/10 NodeJs
Vue2.0 事件的广播与接收(观察者模式)
2018/03/14 Javascript
React中Ref 的使用方法详解
2020/04/28 Javascript
如何利用javascript接收json信息并进行处理
2020/08/06 Javascript
Python显示进度条的方法
2014/09/20 Python
python爬取51job中hr的邮箱
2016/05/14 Python
Python应用03 使用PyQT制作视频播放器实例
2016/12/07 Python
PyCharm安装第三方库如Requests的图文教程
2018/05/18 Python
PyQt5实现五子棋游戏(人机对弈)
2020/03/24 Python
python三方库之requests的快速上手
2019/03/04 Python
Python Django框架实现应用添加logging日志操作示例
2019/05/17 Python
python 队列基本定义与使用方法【初始化、赋值、判断等】
2019/10/24 Python
python GUI库图形界面开发之PyQt5开发环境配置与基础使用
2020/02/25 Python
Python文本文件的合并操作方法代码实例
2020/03/31 Python
Django form表单与请求的生命周期步骤详解
2020/06/07 Python
Python多线程的退出控制实现
2020/08/10 Python
详解css3 flex弹性盒自动铺满写法
2020/09/17 HTML / CSS
html2canvas把div保存图片高清图的方法示例
2018/03/05 HTML / CSS
设计毕业生简历中的自我评价
2013/10/01 职场文书
数学国培研修感言
2014/02/13 职场文书
面试复试通知单
2015/04/24 职场文书