JS+H5打字练习器
创始人
2024-11-13 09:38:45
0

实现功能

1.导入.TXT文件到打字练习内容(部分浏览器可能出于安全问题限制了这一步操作)
2.输入文本到打字练习内(弹出输入框,将要练习的内容输入至输入框)
3. 开始练习,并根据正误在打字练习内容文本上修改颜色(某个字正确显示绿色,某个字错误,显示红色,某个字没有打显示灰色)
4.开始练习、结束练习,全部输入完成后自动结束练习,也可提前手动结束练习,结束练习后弹窗用显示时和正确率。(区别在于一个全部输入完成且全部正确,一个提前结束无其他条件)

效果图

在这里插入图片描述在这里插入图片描述

分析

HTML 结构解析

  1. 根元素 声明文档类型为HTML。
  2. html 元素:包含整个页面的内容,并设置语言为中文(lang="zh-CN")。
  3. head 元素:包含页面的元数据,如字符集(charset="UTF-8")、视口设置(viewport)和标题(</code>)。</li><li><strong><code>style</code> 元素</strong>:包含页面的CSS样式。 <ul><li>设置页面背景颜色、字体、布局样式等。</li></ul></li><li><strong><code>body</code> 元素</strong>:包含页面的可见内容。 <ul><li>使用Flexbox布局使内容居中。</li></ul></li><li><strong><code>.container</code> 类</strong>:包含文本输入框和按钮,并设置样式。</li><li><strong><code>.buttons</code> 类</strong>:包含一组按钮,并设置布局样式。</li><li><strong><code>.text-to-type</code> 类</strong>:包含待输入的文本,并设置样式。</li><li><strong><code>input</code> 元素</strong>:一个文本输入框,用于用户输入。</li></ol><h4>JavaScript 解析</h4><ol><li><p><strong>变量声明</strong>:</p><ul><li><code>textToType</code>:获取待输入文本的DOM元素。</li><li><code>inputText</code>:获取用户输入文本的DOM元素。</li><li><code>importTextBtn</code>、<code>addTextBtn</code>、<code>startPracticeBtn</code>、<code>endPracticeBtn</code>:获取按钮的DOM元素。</li><li><code>originalText</code>:存储原始待输入的文本。</li><li><code>startTime</code>:存储开始练习的时间。</li><li><code>alertCount</code>:存储弹窗次数。</li><li><code>correctCount</code>:存储正确的字符数。</li></ul></li><li><p><strong><code>inputText</code> 输入事件监听器</strong>:</p><ul><li>当用户在输入框中输入时,会触发此事件。</li><li>获取用户当前输入的文本。</li><li>初始化一个空字符串<code>updatedText</code>用于构建更新后的文本。</li><li>如果<code>startTime</code>已设置,遍历原始文本和用户输入的文本: <ul><li>如果字符匹配,将字符标记为<code>correct</code>。</li><li>如果字符不匹配,将字符标记为<code>wrong</code>。</li></ul></li><li>更新<code>textToType</code>的HTML内容。</li><li>如果用户输入的文本与原始文本完全匹配,计算总用时和正确率,并通过弹窗显示结果。</li><li>重置输入框和<code>startTime</code>。</li></ul></li><li><p><strong><code>importTextBtn</code> 点击事件监听器</strong>:</p><ul><li>创建一个文件输入元素,允许用户选择<code>.txt</code>文件。</li><li>当文件被选中后,使用<code>FileReader</code>读取文件内容。</li><li>读取完成后,将文本内容赋值给<code>originalText</code>并更新<code>textToType</code>。</li></ul></li><li><p><strong><code>addTextBtn</code> 点击事件监听器</strong>:</p><ul><li>弹出一个输入框让用户输入文本。</li><li>如果用户输入了文本,将其赋值给<code>originalText</code>并更新<code>textToType</code>。</li></ul></li><li><p><strong><code>startPracticeBtn</code> 点击事件监听器</strong>:</p><ul><li>设置<code>startTime</code>为当前时间。</li><li>清空输入框。</li><li>更新<code>textToType</code>的HTML内容为原始文本。</li></ul></li><li><p><strong><code>endPracticeBtn</code> 点击事件监听器</strong>:</p><ul><li>如果<code>startTime</code>已设置,计算总用时和正确率,并通过弹窗显示结果。</li><li>重置<code>startTime</code>和输入框。</li></ul></li></ol><h3>完成源代码</h3> <pre><code class="prism language-html"><!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>打字练习
    这是一个打字练习的例子

相关内容

热门资讯

绝活儿辅助!广西老友玩老是输怎... 绝活儿辅助!广西老友玩老是输怎么办(辅助挂)都是真的有辅助app(讲解有挂)在进入广西老友玩老是输怎...
法门辅助!福建13水插件(辅助... 法门辅助!福建13水插件(辅助挂)一贯是有辅助技巧(有挂技术)1、许多玩家不知道福建13水插件辅助怎...
办法辅助!潮友会app下载官方... 办法辅助!潮友会app下载官方辅助器(辅助挂)真是真的是有辅助app(有挂教程)该软件可以轻松地帮助...
妙招辅助!邯郸胡乐挂辅助(辅助... 妙招辅助!邯郸胡乐挂辅助(辅助挂)好像存在有辅助插件(有挂方略)1、上手简单,内置详细流程视频教学,...
教程书辅助!乐酷辅助(辅助挂)... 教程书辅助!乐酷辅助(辅助挂)其实存在有辅助脚本(有挂细节)乐酷辅助能透视中分为三种模型:乐酷辅助模...
学习辅助!决战卡五星辅助(辅助... 学习辅助!决战卡五星辅助(辅助挂)本来真的是有辅助软件(有人有挂)学习辅助!决战卡五星辅助(辅助挂)...
绝活辅助!边锋嘉兴麻将辅助器(... 绝活辅助!边锋嘉兴麻将辅助器(辅助挂)真是真的有辅助神器(新版有挂)1、边锋嘉兴麻将辅助器公共底牌简...
举措辅助!枫叶辅助器(辅助挂)... 举措辅助!枫叶辅助器(辅助挂)本来存在有辅助技巧(竟然有挂)1、下载好枫叶辅助器正确养号方法之后点击...
讲义辅助!点我达辅助(辅助挂)... 讲义辅助!点我达辅助(辅助挂)一直存在有辅助技巧(有人有挂)1、点我达辅助辅助器安装包、点我达辅助辅...
模块辅助!威信茶馆有挂的吗(辅... 模块辅助!威信茶馆有挂的吗(辅助挂)一直真的是有辅助脚本(揭秘有挂)1、玩家可以在威信茶馆有挂的吗线...