如果您想要为您的网站添加在线考试试卷答题填写表单功能,那么使用jQuery是一个非常好的选择。在本文中,我们将演示如何使用jQuery来制作一个通用的在线考试试卷答题填写表单页面,并添加左侧悬浮答题栏和特效。

界面布局

我们需要创建一个基本的HTML界面,在其中包含所有的问题和选项。以下是一个例子:

<!DOCTYPE html>
<html>
<head>
	<title>在线考试试卷</title>
</head>
<body>
	<div id="wrapper">
		<h1>在线考试试卷</h1>
		<div id="questions">
			<div class="question">
				<h2>问题 1:</h2>
				<p>这是第一个问题的描述。</p>
				<ul>
					<li><input type="radio" name="q1" value="a"> 选项 A</li>
					<li><input type="radio" name="q1" value="b"> 选项 B</li>
					<li><input type="radio" name="q1" value="c"> 选项 C</li>
				</ul>
			</div>
			<div class="question">
				<h2>问题 2:</h2>
				<p>这是第二个问题的描述。</p>
				<ul>
					<li><input type="radio" name="q2" value="a"> 选项 A</li>
					<li><input type="radio" name="q2" value="b"> 选项 B</li>
					<li><input type="radio" name="q2" value="c"> 选项 C</li>
				</ul>
			</div>
		</div>
		<div id="sidebar">
			<ul>
				<li><a href="#q1">问题 1</a></li>
				<li><a href="#q2">问题 2</a></li>
			</ul>
		</div>
	</div>
</body>
</html>

在这个例子中,我们创建了一个包含两个问题的试卷。每个问题都有一个问题描述和三个选项(A、B、C)。我们还创建了一个侧边栏,其中列出了每个问题的标题,并使用锚点链接到相应的问题。

jQuery脚本

我们将添加一些jQuery代码来使页面具备交互性。以下是代码:

$(document).ready(function() {
	// 隐藏所有问题除了第一个
	$('.question').not(':first').hide();

	// 当用户点击侧边栏中的链接时,滚动到相应的问题
	$('#sidebar a').click(function(event) {
		event.preventDefault();
		var target = $($(this).attr('href'));
		if (target.length) {
			var top = target.offset().top;
			$('html, body').animate({scrollTop: top}, 'slow');
		}
	});

	// 当用户选择答案时,更新侧边栏中的答题情况
	$('input[type="radio"]').click(function() {
		var question = $(this).closest('.question');
		var index = $('.question').index(question) + 1;
		var value = $(this).val();
		$('#sidebar a[href="#q' + index + '"]').addClass('answered');
	});
});

这些代码实现了以下功能:

  • 隐藏所有问题除了第一个。
  • 当用户点击侧边栏中的链接时,滚动到相应的问题。
  • 当用户选择答案时,更新侧边栏中的答题情况。

CSS样式

我们需要添加一些CSS样式来修饰页面。以下是代码:

#wrapper {
	width: 800px;
	margin: 0 auto;
}

#questions {
	float: left;
	width: 600px;
	margin-right: 50px;
}

.question {
	margin-bottom: 20px;
}

.question h2 {
	font-size: 18px;
}

.question ul {
	list-style-type:none;
	margin: 0;
	padding: 0;
}

.question ul li {
	font-size: 14px;
	margin-bottom: 5px;
}

#sidebar {
	float: left;
	width: 150px;
	background-color: #eee;
	padding: 10px;
}

#sidebar ul {
	list-style-type: none;
	margin: 0;
	padding: 0;
}

#sidebar ul li {
	margin-bottom: 5px;
}

#sidebar a {
	display: block;
	padding: 5px;
	color: #333;
	text-decoration: none;
}

#sidebar a:hover,
#sidebar a.answered {
	background-color: #333;
	color: #fff;
}

这些样式将页面布局为两列,左侧是问题和选项,右侧是侧边栏。侧边栏中的链接使用了一些基本的样式,当用户选择答案时,会添加一个额外的类“answered”,以表示该问题已被回答。

在本文中,我们演示了如何使用jQuery来制作一个通用的在线考试试卷答题填写表单页面。我们还添加了一个左侧悬浮答题栏和一些特效。这个页面可以方便地扩展到任意数量的问题和选项,并且易于维护和使用。