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 相关文章推荐
jQuery EasyUI API 中文文档 - NumberBox数字框
Oct 13 Javascript
JavaScript闭包 懂不懂由你反正我是懂了
Oct 21 Javascript
javascript实现图片跟随鼠标移动效果的方法
May 13 Javascript
Jquery 全选反选实例代码
Nov 19 Javascript
JavaScript 不支持 indexof 该如何解决
Mar 30 Javascript
js实现文字选中分享功能
Jan 25 Javascript
js实现本地时间同步功能
Aug 26 Javascript
JavaScript实现鼠标滚轮控制页面图片切换功能示例
Oct 14 Javascript
解决vue动态为数据添加新属性遇到的问题
Sep 18 Javascript
微信小程序防止多次点击跳转和防止表单组件输入内容多次验证功能(函数防抖)
Sep 19 Javascript
解决三元运算符 报错“SyntaxError: can''t assign to conditional expression”
Feb 12 Javascript
Element-ui el-tree新增和删除节点后如何刷新tree的实例
Aug 31 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中利用XML技术构造远程服务(上)
2006/10/09 PHP
php中is_null,empty,isset,unset 的区别详细介绍
2013/04/28 PHP
php更新mysql后获取改变行数的方法
2014/12/25 PHP
php+mysql实现简单的增删改查功能
2015/07/13 PHP
php提高网站效率的技巧
2015/09/29 PHP
php需登录的文件上传管理系统
2020/03/21 PHP
深入剖析浏览器退出之后php还会继续执行么
2016/05/17 PHP
div+css+js实现无缝滚动类似marquee无缝滚动兼容firefox
2013/08/29 Javascript
jquery插件推荐 jquery.cookie
2014/11/09 Javascript
js实现鼠标滚轮控制图片缩放效果的方法
2015/02/20 Javascript
JavaScript实现的MD5算法完整实例
2016/02/02 Javascript
Angular.js中用ng-repeat-start实现自定义显示
2016/10/18 Javascript
利用React-router+Webpack快速构建react程序
2016/10/27 Javascript
webpack4.x CommonJS模块化浅析
2018/11/09 Javascript
element vue validate验证名称重复 输入框与后台重复验证 特殊字符 字符长度 及注意事项小结【实例代码】
2018/11/20 Javascript
解决Vue-Router升级导致的Uncaught (in promise)问题
2020/08/07 Javascript
在Python中使用swapCase()方法转换大小写的教程
2015/05/20 Python
利用Python实现命令行版的火车票查看器
2016/08/05 Python
使用Python的Scrapy框架十分钟爬取美女图
2016/12/26 Python
Python过滤txt文件内重复内容的方法
2018/10/21 Python
Python零基础入门学习之输入与输出
2019/04/03 Python
Python参数类型以及常见的坑详解
2019/07/08 Python
Django框架自定义模型管理器与元选项用法分析
2019/07/22 Python
ORM Django 终端打印 SQL 语句实现解析
2019/08/09 Python
python实现加密的方式总结
2020/01/19 Python
Python调用JavaScript代码的方法
2020/10/27 Python
无需JS和jQuery代码实现CSS3鼠标浮动放大图片
2016/11/21 HTML / CSS
澳大利亚领先的男装零售连锁店:Lowes
2020/08/07 全球购物
护理专业应届毕业生推荐信
2013/11/15 职场文书
上班睡觉检讨书
2014/01/09 职场文书
二年级班级文化建设方案
2014/05/10 职场文书
法制教育演讲稿
2014/09/10 职场文书
单位在职证明书
2014/09/11 职场文书
小学班主任经验交流材料
2014/12/16 职场文书
故宫导游词
2015/01/31 职场文书
Python中使用tkFileDialog实现文件选择、保存和路径选择
2022/05/20 Python