文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

JavaScript怎样实现打字游戏

2023-06-06 10:12

关注

这篇文章主要介绍了JavaScript怎样实现打字游戏,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

效果图:

JavaScript怎样实现打字游戏

JavaScript怎样实现打字游戏

JavaScript怎样实现打字游戏

需求分析:

在char这个div里面显示要输入的字母,大写
2、在result这个div里面时时显示正确率,比如98%
3、给文档绑定按键事件
4、如果输入的内容和char里面一致,显示正确动画:animated zoomIn,并更换输入的字母
5、如果输入的内容和char里面不一致,显示错误动画:animated shake error
6、不管是正确还是错误都时时更新result里面的正确率

源代码:

HTML部分

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

css部分

为了实现一些特效,先创建一个animate.css文件,在封装一些动画效果放里面

.animated { -webkit-animation-duration: 1s; animation-duration: 1s; -webkit-animation-fill-mode: both; animation-fill-mode: both;}.animated.infinite { -webkit-animation-iteration-count: infinite; animation-iteration-count: infinite;}.animated.hinge { -webkit-animation-duration: 2s; animation-duration: 2s;}.animated.flipOutX,.animated.flipOutY,.animated.bounceIn,.animated.bounceOut { -webkit-animation-duration: .75s; animation-duration: .75s;}@-webkit-keyframes zoomIn { from { opacity: 0; -webkit-transform: scale3d(.3, .3, .3); transform: scale3d(.3, .3, .3); } 50% { opacity: 1; }}@keyframes zoomIn { from { opacity: 0; -webkit-transform: scale3d(.3, .3, .3); transform: scale3d(.3, .3, .3); } 50% { opacity: 1; }}.zoomIn { -webkit-animation-name: zoomIn; animation-name: zoomIn;}  .animated { -webkit-animation-duration: 1s; animation-duration: 1s; -webkit-animation-fill-mode: both; animation-fill-mode: both;}@-webkit-keyframes shake { from, to { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } 10%, 30%, 50%, 70%, 90% { -webkit-transform: translate3d(-10px, 0, 0); transform: translate3d(-10px, 0, 0); } 20%, 40%, 60%, 80% { -webkit-transform: translate3d(10px, 0, 0); transform: translate3d(10px, 0, 0); }}@keyframes shake { from, to { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } 10%, 30%, 50%, 70%, 90% { -webkit-transform: translate3d(-10px, 0, 0); transform: translate3d(-10px, 0, 0); } 20%, 40%, 60%, 80% { -webkit-transform: translate3d(10px, 0, 0); transform: translate3d(10px, 0, 0); }}.shake { -webkit-animation-name: shake; animation-name: shake;}

css主体代码,无动画特效版

<style> body {  margin: 0;    display: flex;  justify-content: center;  align-items: center;    text-align: center;    background: radial-gradient(circle, #444, #111, #000); } #char {  font-size: 400px;  color: lightgreen;        text-shadow: 0 0 50px #666; } #result {  font-size: 20px;  color: #888; }  #char.error {  color: red; }</style>

JavaScript部分

为了简化代码,先封装一些常用的自定义构造函数

<script>// 定义一个函数:rand// 参数:最小整数,最大整数// 返回:两个整数之间的一个随机整数function rand(min, max) { return parseInt(Math.random() * (max - min + 1)) + min;} </script>

js主体部分,需要用到封装的函数,调用即可

<script> // 获取相关元素 var charDiv = document.getElementById('char'); var resultDiv = document.getElementById('result'); // code用于记录页面上的字母的编码,使用全局变量,到处都可以使用 var code, tirme; var rightNum = 0;//正确次数 var wrongNum = 0;//错误次数 // 1 在char这个div里面显示要输入的字母,大写 showChar(); // 3 给文档绑定按键事件 document.onkeyup = function (e) { // 事件对象 e = window.event || e; // 获取按键编码 var keyCode = e.keyCode || e.which; // 4 如果输入的内容和char里面一致 if (keyCode == code) {  // 显示正确动画:animated zoomIn  charDiv.className = "animated zoomIn";  rightNum++;  showChar() } // 5 如果输入的内容和char里面不一致 else {  // 显示错误动画:animated shake error  charDiv.className = "animated shake error";  wrongNum++ } // 为了下一次有动画,在本次动画完后要移除类名 setTimeout(function () {  charDiv.className = ""; }, 500) // 6 不管是正确还是错误都时时更新result里面的正确率 // 正确率 = 正确次/总次数 resultDiv.innerHTML = "正确率:" + parseInt(rightNum / (rightNum + wrongNum) * 100) + "%" } // 函数功能:在char这个div里面随机显示要输入的字母:大写 function showChar() {  // 先随机出一个字母编码  code = rand(65, 90);  // 变成一个字母  var char = String.fromCharCode(code);  // 显示在char这个div里面  charDiv.innerHTML = char; }</script>

总代码

<html><head> <meta charset="utf-8"> <title>打字游戏</title> <!--引入animate.css动画库--> <link rel="stylesheet" href="animate.css" > <style> body {  margin: 0;    display: flex;  justify-content: center;  align-items: center;    text-align: center;    background: radial-gradient(circle, #444, #111, #000); } #char {  font-size: 400px;  color: lightgreen;        text-shadow: 0 0 50px #666; } #result {  font-size: 20px;  color: #888; }  #char.error {  color: red; } </style></head><body> <mian> <div id="char">A</div> <div id="result">请在按键上按下屏幕上显示的字母</div> </mian></body></html><script> // 定义一个函数:rand // 参数:最小整数,最大整数 // 返回:两个整数之间的一个随机整数 function rand(min, max) { return parseInt(Math.random() * (max - min + 1)) + min; }</script><script> // 获取相关元素 var charDiv = document.getElementById('char'); var resultDiv = document.getElementById('result'); // code用于记录页面上的字母的编码,使用全局变量,到处都可以使用 var code, tirme; var rightNum = 0;//正确次数 var wrongNum = 0;//错误次数 // 1 在char这个div里面显示要输入的字母,大写 showChar(); // 3 给文档绑定按键事件 document.onkeyup = function (e) { // 事件对象 e = window.event || e; // 获取按键编码 var keyCode = e.keyCode || e.which; // 4 如果输入的内容和char里面一致 if (keyCode == code) {  // 显示正确动画:animated zoomIn  charDiv.className = "animated zoomIn";  rightNum++;  showChar() } // 5 如果输入的内容和char里面不一致 else {  // 显示错误动画:animated shake error  charDiv.className = "animated shake error";  wrongNum++ } // 为了下一次有动画,在本次动画完后要移除类名 setTimeout(function () {  charDiv.className = ""; }, 500) // 6 不管是正确还是错误都时时更新result里面的正确率 // 正确率 = 正确次/总次数 resultDiv.innerHTML = "正确率:" + parseInt(rightNum / (rightNum + wrongNum) * 100) + "%" } // 函数功能:在char这个div里面随机显示要输入的字母:大写 function showChar() {  // 先随机出一个字母编码  code = rand(65, 90);  // 变成一个字母  var char = String.fromCharCode(code);  // 显示在char这个div里面  charDiv.innerHTML = char; }</script>

感谢你能够认真阅读完这篇文章,希望小编分享的“JavaScript怎样实现打字游戏”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网行业资讯频道,更多相关知识等着你来学习!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯