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 replace(rgExp,fn)正则替换的用法
Mar 04 Javascript
jquery命令汇总,方便使用jquery的朋友
Jun 26 Javascript
获取客户端电脑日期时间js代码(jquery)
Sep 12 Javascript
javascript发送短信验证码实现代码
Nov 12 Javascript
Javascript中的数组常用方法解析
Jun 17 Javascript
javascript实现的左右无缝滚动效果
Sep 19 Javascript
Bootstrap 网站实例之单页营销网站
Oct 20 Javascript
Angular2学习教程之TemplateRef和ViewContainerRef详解
May 25 Javascript
javascript原型链学习记录之继承实现方式分析
May 01 Javascript
JavaScript 面向对象程序设计详解【类的创建、实例对象、构造函数、原型等】
May 12 Javascript
Vue+Spring Boot简单用户登录(附Demo)
Nov 12 Javascript
Vue全家桶入门基础教程
May 14 Vue.js
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备份/还原MySQL数据库的代码
2011/01/06 PHP
php 如何获取文件的后缀名
2016/06/05 PHP
PHP生成图片验证码功能示例
2017/01/12 PHP
Laravel实现autoload方法详解
2017/05/07 PHP
常用参考资料(手册)下载或者链接
2006/07/22 Javascript
jquery.cvtooltip.js 基于jquery的气泡提示插件
2010/11/19 Javascript
javascript函数重载解决方案分享
2014/02/19 Javascript
javascript实现的平方米、亩、公顷单位换算小程序
2014/08/11 Javascript
IE下JS保存图片的简单实例
2016/07/15 Javascript
微信网页登录逻辑与实现方法
2019/04/29 Javascript
关于ligerui子页面关闭后,父页面刷新,重新加载的方法
2019/09/27 Javascript
使用Vue实现一个树组件的示例
2020/11/06 Javascript
[44:22]完美世界DOTA2联赛循环赛 FTD vs PXG BO2第一场 11.01
2020/11/02 DOTA
python 切片和range()用法说明
2013/03/24 Python
Python random模块(获取随机数)常用方法和使用例子
2014/05/13 Python
解决python xlrd无法读取excel文件的问题
2018/12/25 Python
详解python中递归函数
2019/04/16 Python
python中sympy库求常微分方程的用法
2020/04/28 Python
用python实现学生管理系统
2020/07/24 Python
python软件测试Jmeter性能测试JDBC Request(结合数据库)的使用详解
2021/01/26 Python
使用CSS3编写类似iOS中的复选框及带开关的按钮
2016/04/11 HTML / CSS
基于HTML5+Webkit实现树叶飘落动画
2017/12/28 HTML / CSS
交通法规咨询中心工作职责
2013/11/27 职场文书
2014年高三毕业生自我评价
2014/01/11 职场文书
银行员工职业规划范文
2014/01/21 职场文书
文员的职业生涯规划发展方向
2014/02/08 职场文书
电子商务助理求职自荐信
2014/04/10 职场文书
心理健康活动总结
2014/04/30 职场文书
食品安全汇报材料
2014/08/18 职场文书
解除聘用合同证明书范本
2014/09/11 职场文书
2014年公务员退休工资改革方案
2014/10/01 职场文书
教师群众路线心得体会
2014/11/04 职场文书
总经理司机岗位职责
2015/04/10 职场文书
早会开场白台词大全
2015/06/01 职场文书
体育委员竞选稿
2015/11/21 职场文书
如何用Laravel包含你自己的帮助函数
2021/05/27 PHP