JavaScript 如何在任何网站上创建FAQ部分

JavaScript 如何在任何网站上创建FAQ部分

在这篇文章中,我们使用JavaScript创建了一个常见问题(FAQ)手风琴。手风琴用于以列表形式显示内容。它可以展开或折叠以显示其包含的内容。

方法:

  • 使用嵌套的HTML div标签创建包含问题和答案的class名称。
  • 为了样式设计,添加一些CSS属性,如对齐、字体大小、填充、边距等。
  • 使用JavaScript实现当问题被点击时显示答案或手风琴项。

HTML代码: 我们使用了问题和答案的class来进行样式设计。

CSS代码: 为了样式设计,我们使用了CSS属性。

JavaScript代码: 我们将使用JavaScript在点击时显示手风琴。我们使用querySelectorAll()方法返回与传递给该方法的class名称相匹配的元素的集合,并将这些元素存储在answers变量中。

我们使用forEach()方法在answer变量中的每个元素上调用该函数。现在,指定一个事件监听器addEventListener(),当元素被点击时。它将使用classList属性检查事件是否具有活动类,该属性返回与该元素或事件关联的所有类的名称。

HTML

<!DOCTYPE html> 
<html> 
  
<head> 
  <link rel="stylesheet" href="styles.css"> 
  <script src="main.js"></script> 
</head> 
  
<body> 
  <h2 style="color:green; text-align:center"> 
    GeeksforGeeks 
  </h2> 
  <div class="layout"> 
    <div class="accordion"> 
      <div class="accordion__question"> 
        <p>Where is Taj Mahal located?</p> 
  
      </div> 
      <div class="accordion__answer"> 
        <p>Taj Mahal is located in Agra, Uttar Pradesh.</p> 
      </div> 
    </div> 
  
    <div class="accordion"> 
      <div class="accordion__question"> 
        <p>How many planets are there in solar system?</p> 
      </div> 
  
      <div class="accordion__answer"> 
        <p> 
          There are eight planets in solar system. 
          Mercury, Venus, Earth, Mars, Jupiter, Saturn, 
          Uranus, and Neptune. 
        </p> 
      </div> 
    </div> 
  </div> 
</body> 
  
</html>
JavaScript

CSS

body { 
  background-color: rgb(153, 218, 196); 
} 
.layout { 
  width: 600px; 
  margin: auto; 
} 
.accordion { 
  padding: 10px; 
  margin-top: 10px; 
  margin-bottom: 10px; 
  background: rgb(105, 206, 105); 
  border-radius: 10px; 
} 
.accordion__question p { 
  margin: 5px; 
  padding: 0; 
  font-family: Verdana; 
  font-size: 20px; 
} 
.accordion__answer p { 
  margin: 5px; 
  padding: 10px; 
  font-size: large; 
  font-family: Verdana, Geneva, Tahoma, sans-serif; 
  color: rgb(255, 255, 255); 
  background: rgb(82, 170, 122); 
  border-radius: 10px; 
} 
.accordion:hover { 
  cursor: pointer; 
} 
.accordion__answer { 
  display: none; 
} 
.accordion.active .accordion__answer { 
  display: block; 
}
JavaScript

Javascript

let answers = document.querySelectorAll(".accordion"); 
answers.forEach((event) => { 
  event.addEventListener("click", () => { 
    if (event.classList.contains("active")) { 
      event.classList.remove("active"); 
    } else { 
      event.classList.add("active"); 
    } 
  }); 
});
JavaScript

输出: 点击这里查看实时代码输出

JavaScript 如何在任何网站上创建FAQ部分

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册