…">
当前位置:首页 > HTML

h5实现答题

2026-03-06 14:32:03HTML

使用HTML5实现答题功能

HTML5结合JavaScript可以轻松实现答题功能。以下是一个简单的答题系统实现方法:

HTML结构

<div id="quiz-container">
  <h3 id="question"></h3>
  <div id="options"></div>
  <button id="submit">提交答案</button>
  <div id="result"></div>
</div>

CSS样式

#quiz-container {
  max-width: 600px;
  margin: 0 auto;
  padding: 20px;
}

#options {
  margin: 20px 0;
}

.option {
  display: block;
  margin: 10px 0;
  padding: 10px;
  border: 1px solid #ddd;
  cursor: pointer;
}

.option:hover {
  background-color: #f5f5f5;
}

JavaScript逻辑

const quizData = [
  {
    question: "HTML5是什么时候发布的?",
    options: ["2008", "2012", "2014", "2016"],
    answer: "2014"
  },
  {
    question: "哪个标签用于播放视频?",
    options: ["<media>", "<video>", "<movie>", "<play>"],
    answer: "<video>"
  }
];

let currentQuestion = 0;
let score = 0;

function loadQuestion() {
  const questionElement = document.getElementById('question');
  const optionsElement = document.getElementById('options');

  questionElement.textContent = quizData[currentQuestion].question;
  optionsElement.innerHTML = '';

  quizData[currentQuestion].options.forEach(option => {
    const button = document.createElement('button');
    button.textContent = option;
    button.className = 'option';
    button.onclick = function() {
      selectOption(option);
    };
    optionsElement.appendChild(button);
  });
}

function selectOption(option) {
  const options = document.querySelectorAll('.option');
  options.forEach(opt => {
    opt.style.backgroundColor = '';
  });

  event.target.style.backgroundColor = '#d4edda';

  document.getElementById('submit').onclick = function() {
    checkAnswer(option);
  };
}

function checkAnswer(selectedOption) {
  if(selectedOption === quizData[currentQuestion].answer) {
    score++;
    document.getElementById('result').textContent = '正确!';
  } else {
    document.getElementById('result').textContent = '错误!';
  }

  currentQuestion++;
  if(currentQuestion < quizData.length) {
    loadQuestion();
  } else {
    document.getElementById('quiz-container').innerHTML = `
      <h3>测验完成!</h3>
      <p>你的得分: ${score}/${quizData.length}</p>
    `;
  }
}

loadQuestion();

实现答题功能的关键点

数据结构设计 使用数组存储问题和答案,每个问题对象包含问题文本、选项数组和正确答案。

{
  question: "问题文本",
  options: ["选项1", "选项2", "选项3", "选项4"],
  answer: "正确答案"
}

界面交互 为每个选项创建按钮元素,并绑定点击事件。用户选择选项后高亮显示,提交按钮检查答案。

状态管理 使用currentQuestion变量跟踪当前问题索引,score变量记录得分。每回答一个问题后递增currentQuestion。

结果展示 所有问题回答完毕后显示总分,并提供重新开始的选项(可添加重新开始按钮)。

增强功能建议

本地存储 使用localStorage保存用户进度和最高分:

// 保存分数
localStorage.setItem('quizHighScore', score);

// 读取分数
const highScore = localStorage.getItem('quizHighScore') || 0;

计时功能 添加答题计时器:

let timeLeft = 30;
const timer = setInterval(() => {
  timeLeft--;
  document.getElementById('timer').textContent = timeLeft;
  if(timeLeft <= 0) {
    clearInterval(timer);
    checkAnswer(null);
  }
}, 1000);

随机问题顺序 打乱问题顺序增加可玩性:

quizData.sort(() => Math.random() - 0.5);

多种题型支持 扩展数据结构支持多选题、判断题等:

h5实现答题

{
  type: "multiple", // 单选/多选/判断
  correctOptions: [0, 2] // 多选正确答案索引
}

分享给朋友:

相关文章

h5实现全景

h5实现全景

H5 实现全景效果的方法 H5 实现全景效果通常通过 WebGL、Three.js 或 CSS3D 技术实现,以下是几种常见方案: 使用 Three.js 实现 360° 全景 Three.js 是…

h5实现页面跳转页面跳转页面

h5实现页面跳转页面跳转页面

H5 实现页面跳转的方法 使用 <a> 标签实现跳转 通过超链接标签 <a> 的 href 属性指定目标页面路径,用户点击后跳转。 <a href="target.…

h5响应式布局如何实现

h5响应式布局如何实现

使用媒体查询(Media Queries) 通过CSS媒体查询针对不同屏幕尺寸设置不同的样式规则。例如: @media screen and (max-width: 768px) { .co…

h5实现选项卡

h5实现选项卡

使用HTML5和CSS实现选项卡 HTML5结合CSS可以轻松实现选项卡效果,无需JavaScript也能完成基本功能。以下是纯HTML+CSS的实现方法: <div class="t…

h5实现网页截屏

h5实现网页截屏

实现网页截屏的方法 使用html2canvas库 html2canvas是一个流行的JavaScript库,可以将网页内容转换为Canvas图像。安装方式如下: npm install html2c…

h5实现左右滚动效果

h5实现左右滚动效果

使用CSS实现横向滚动 在HTML5中实现左右滚动效果,可以通过CSS的overflow-x属性配合white-space或flex布局实现。以下是一个基础示例: <div class="sc…