在网站中,常见问题列表是一个非常常见的组件。它通常包含一系列问答文字列表,用户可以通过点击问题标题来展开或收缩相应的回答内容。这种交互式组件使得用户能够更快速地找到他们感兴趣的答案,并且也提高了用户的体验。

在本文中,我们将探讨如何使用jQuery来创建一个具有下拉收缩效果的常见问题列表。

HTML结构

我们需要创建一个HTML结构,包含所有的问题和答案。我们将使用无序列表(<ul>)来表示整个列表,并为每个问题/答案对创建一个列表项(<li>)。每个列表项将包含两个元素:问题标题(<h2>)和答案内容(<p>):

<ul class="faq">
  <li>
    <h2>问题1</h2>
    <p>答案1</p>
  </li>
  <li>
    <h2>问题2</h2>
    <p>答案2</p>
  </li>
  <!-- 其他问题和答案 -->
</ul>

CSS样式

我们需要添加CSS样式来定义问题和答案的外观,并设置默认情况下答案是隐藏的。我们将使用以下CSS样式:

.faq li {
  margin-bottom: 10px;
}

.faq h2 {
  cursor: pointer;
  font-size: 16px;
  font-weight: bold;
  margin: 0;
}

.faq p {
  display: none;
  font-size: 14px;
  line-height: 1.5;
}

在这里,我们定义了问题标题为粗体字,并添加了一个指针样式以提示用户可以点击。我们还隐藏了答案内容,因为我们希望它默认情况下是收起的。

jQuery脚本

我们需要使用jQuery来实现下拉收缩效果。我们将使用click()方法来捕捉每个问题标题上的鼠标单击事件,并使用slideToggle()方法来切换相应的答案内容的显示状态(打开或关闭)。

$(document).ready(function() {
  $('.faq h2').click(function() {
    $(this).next('p').slideToggle();
  });
});

在这里,我们将代码包装在$(document).ready()函数中,以确保当页面加载时所有元素都已准备好。我们使用选择器$('.faq h2')来捕捉每个问题标题元素,并使用click()方法将一个单击事件绑定到它们上。我们使用slideToggle()方法来切换相邻的答案段落元素的显示状态。

完整代码

最终,我们的完整代码如下所示:

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>常见问题列表</title>
  <style>
    .faq li {
      margin-bottom: 10px;
    }

    .faq h2 {
      cursor: pointer;
      font-size: 16px;
      font-weight: bold;
      margin: 0;
    }

    .faq p {
      display: none;
      font-size: 14px;
      line-height: 1.5;
    }
  </style>
  <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
  <script>
    $(document).ready(function() {
      $('.faq h2').click(function() {
        $(this).next('p').slideToggle();
      });
    });
  </script>
</head>
<body>
  <ul class="faq">
    <li>
      <h2>问题1</h2>
      <p>答案1</p>
    </li>
    <li>
      <h2>问题2</h2>
      <p>答案2</p>
	</li>
	<!-- 其他问题和答案 -->
	</ul>
</body>
</html>

使用jQuery可以非常容易地实现一个带有下拉收缩效果的常见问题列表。我们需要定义HTML结构和CSS样式,使用jQuery将单击事件绑定到问题标题上,并在单击时切换相应的答案内容的显示状态。

通过这种方式,我们可以为用户提供一个交互式组件,使他们更容易找到自己感兴趣的答案并提高网站的可用性。