JS+H5打字训练器

[复制链接]
发表于 2026-2-14 07:54:29 | 显示全部楼层 |阅读模式
实现功能

1.导入.TXT文件到打字训练内容(部分欣赏器大概出于安全题目限定了这一步操纵)

2.输入文本到打字训练内(弹出输入框,将要训练的内容输入至输入框)

3. 开始训练,并根据正误在打字训练内容文本上修改颜色(某个字精确表现绿色,某个字错误,表现赤色,某个字没有打表现灰色)

4.开始训练、竣事训练,全部输入完成后主动竣事训练,也可提前手动竣事训练,竣事训练后弹窗用表现时和精确率。(区别在于一个全部输入完成且全部精确,一个提前竣事无其他条件)

效果图


分析

HTML 布局剖析

      
  • 根元素:<!DOCTYPE html> 声明文档范例为HTML。  
  • html 元素:包罗整个页面的内容,并设置语言为中文(lang="zh-CN")。  
  • head 元素:包罗页面的元数据,如字符集(charset="UTF-8")、视口设置(viewport)和标题(<title>)。  
  • style 元素:包罗页面的CSS样式。
         
    • 设置页面配景颜色、字体、布局样式等。   
       
  • body 元素:包罗页面的可见内容。
         
    • 利用Flexbox布局使内容居中。   
       
  • .container 类:包罗文本输入框和按钮,并设置样式。  
  • .buttons 类:包罗一组按钮,并设置布局样式。  
  • .text-to-type 类:包罗待输入的文本,并设置样式。  
  • input 元素:一个文本输入框,用于用户输入。
JavaScript 剖析

      
  • 变量声明
         
    • textToType:获取待输入文本的DOM元素。   
    • inputText:获取用户输入文本的DOM元素。   
    • importTextBtn、addTextBtn、startPracticeBtn、endPracticeBtn:获取按钮的DOM元素。   
    • originalText:存储原始待输入的文本。   
    • startTime:存储开始训练的时间。   
    • alertCount:存储弹窗次数。   
    • correctCount:存储精确的字符数。   
       
  • inputText 输入变乱监听器
         
    • 当用户在输入框中输入时,会触发此变乱。   
    • 获取用户当前输入的文本。   
    • 初始化一个空字符串updatedText用于构建更新后的文本。   
    • 假如startTime已设置,遍历原始文本和用户输入的文本:
              
      • 假如字符匹配,将字符标记为correct。      
      • 假如字符不匹配,将字符标记为wrong。     
           
    • 更新textToType的HTML内容。   
    • 假如用户输入的文本与原始文本完全匹配,盘算总用时和精确率,并通过弹窗表现效果。   
    • 重置输入框和startTime。   
       
  • importTextBtn 点击变乱监听器
         
    • 创建一个文件输入元素,允许用户选择.txt文件。   
    • 当文件被选中后,利用FileReader读取文件内容。   
    • 读取完成后,将文本内容赋值给originalText并更新textToType。   
       
  • addTextBtn 点击变乱监听器
         
    • 弹出一个输入框让用户输入文本。   
    • 假如用户输入了文本,将其赋值给originalText并更新textToType。   
       
  • startPracticeBtn 点击变乱监听器
         
    • 设置startTime为当前时间。   
    • 清空输入框。   
    • 更新textToType的HTML内容为原始文本。   
       
  • endPracticeBtn 点击变乱监听器
         
    • 假如startTime已设置,盘算总用时和精确率,并通过弹窗表现效果。   
    • 重置startTime和输入框。   
      
完成源代码

  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  3. <head>
  4.     <meta charset="UTF-8">
  5.     <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6.     <title>打字练习</title>
  7.     <style>
  8.         body {
  9.      
  10.      
  11.             font-family: Arial, sans-serif;
  12.             background-color: #f0f0f0;
  13.             display: flex;
  14.             justify-content: center;
  15.             align-items: center;
  16.             height: 100vh;
  17.             margin: 0;
  18.         }
  19.         .container {
  20.      
  21.      
  22.             background-color: white;
  23.             padding: 20px;
  24.             border-radius: 15px;
  25.             box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
  26.             max-width: 600px;
  27.             width: 100%;
  28.             
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!qidao123.com:ToB企服之家,中国第一个企服评测及软件市场,开放入驻,技术点评得现金

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表