Learn how to create Accordion

wp nav menu3

Accordion is the very easy way to put many content in one place. Collapse the heading which content you want to read.

Step 1: Add HTML

<div class="accordionWrap">
  <button class="accordionHeading">Lorem Ipsum 1</button>
  <div class="accordionPanel">
    <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry.</p>
  </div>
  <button class="accordionHeading">Lorem Ipsum 2</button>
  <div class="accordionPanel">
    <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry.</p>
  </div>
  <button class="accordionHeading">Lorem Ipsum 3</button>
  <div class="accordionPanel">
    <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry.</p>
  </div>
</div>

Step 2: Add CSS

.accordionHeading {
  background-color: #008264;
  color: #ffffff;
  cursor: pointer;
  padding: 12px 30px;
  width: 100%;
  text-align: left;
  border: none;
  outline: none;
  margin-bottom: 8px;
  font-family: 'Poppins', sans-serif;
  font-weight: 600;
  font-size: 20px;
  line-height: 32px;
  border-radius: 10px;
  transition: background-color 0.3s ease-in-out;
}
.accordionHeading:hover, .accordionHeading.open {
  background-color:#036851;
}
.accordionHeading:after { 
  content: '\02795'; /* Unicode character for "plus" sign (+) */
  color: #fff;
  float: right;
  margin-left: 5px;
}
.accordionHeading.open:after {
  content: "\2796"; /* Unicode character for "minus" sign (-) */
}
.accordionPanel {
  padding:0 16px; 
  border-radius:5px;
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease-in-out;
}

Step 3: Add JavaScript

var accordionHeading = document.getElementsByClassName("accordionHeading");
var i;
for (i = 0; i < accordionHeading.length; i++) {
  accordionHeading[i].addEventListener("click", function() {
    this.classList.toggle("open");
    var accordionPanel = this.nextElementSibling;
    if (accordionPanel.style.maxHeight) {
      accordionPanel.style.maxHeight = null;
    } else {
      accordionPanel.style.maxHeight = accordionPanel.scrollHeight + "px";
    }
  });
}

Checkout Live Demo Accordion

Leave a Reply