在網站中,常見問題列表是一個非常常見的組件。它通常包含一系列問答文字列表,用戶可以通過點擊問題標題來展開或收縮相應的回答內容。這種交互式組件使得用戶能夠更快速地找到他們感興趣的答案,并且也提高了用戶的體驗。

在本文中,我們將探討如何使用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將單擊事件綁定到問題標題上,并在單擊時切換相應的答案內容的顯示狀態。

通過這種方式,我們可以為用戶提供一個交互式組件,使他們更容易找到自己感興趣的答案并提高網站的可用性。