利用js做一套试卷,正确嵌套ul、li块结构,初始全部为折叠状,完成+、-好则相应收放四项答案,需要有1秒的动画效果,完成点击+、-好则相应改变对应的小图标,点击增加按钮,则新添加一个题目
时间: 2024-11-14 08:23:08 浏览: 22
在JavaScript中制作一套在线试卷,你可以通过HTML和CSS结合JavaScript来实现这个功能。下面是一个基本的示例:
1. HTML结构:
```html
<div id="exam">
<ul class="question-list">
<li>
<span class="icon plus">+</span>
题目1
<div class="answer-container" style="display: none;">
<input type="radio" name="q1" value="a"> A<br>
<input type="radio" name="q1" value="b"> B<br>
<!-- 添加其他选项 -->
<i class="icon minus">-</i> // 显示/隐藏答案
</div>
</li>
<!-- 重复以上结构添加更多题目 -->
</ul>
</div>
```
2. CSS样式:
```css
.question-list {
list-style-type: none;
}
.answer-container {
transition: max-height 1s ease-in-out;
}
```
3. JavaScript 动画和交互逻辑:
```javascript
var questions = document.querySelectorAll('.question-list li');
questions.forEach(function(question) {
question.querySelector('.plus').addEventListener('click', function() {
question.querySelector('.answer-container').style.maxHeight = 'auto';
this.textContent = '-';
});
question.querySelector('.minus').addEventListener('click', function() {
question.querySelector('.answer-container').style.maxHeight = '0';
this.textContent = '+';
});
});
// 新增题目
function addQuestion() {
var newQuestion = document.createElement('li');
// 生成新的输入项...
document.getElementById('exam').appendChild(newQuestion);
}
addQuestion(); // 调用函数以创建第一个问题
```
在这个例子中,每个`<li>`代表一个问题,`.plus`和`.minus`用于显示和隐藏答案区域。当用户点击`+`或`-`时,会触发1秒的过渡动画,同时相应的图标文字会切换。
阅读全文