0

The button seems to have the transition but the content doesn'hide/show smoothly.

const button = document.querySelectorAll(".accordian_btn");
const content = document.querySelectorAll(".accordian_content");
button.forEach((item) => {
  item.addEventListener("click", () => {
    item.classList.toggle("change");
  });
});
.accordian {
  margin: 2rem 0;
}

.accordian_btn {
  width: 100%;
  background-color: #fff;
  color: #333;
  padding: 1rem;
  text-transform: capitalize;
  text-align: left;
  position: relative;
  border: 0.1rem solid #ccc;
  border-radius: 3rem;
  outline: none;
  cursor: pointer;
  font-size: 1.3rem;
  letter-spacing: 0.1rem;
  transition: all 0.15s;
}

.accordian_btn::after {
  content: "\25be";
  width: 1rem;
  font-size: 2rem;
  position: absolute;
  top: 0.5rem;
  right: 1rem;
}

.accordian_content {
  display: none;
  overflow: auto;
  transition: all 0.15s;
  font-size: 1.2rem;
}

.change.accordian_btn {
  background-color: #e0f3ff;
  border-radius: 3rem;
}

.change.accordian_btn::after {
  transform: rotate(-90deg);
}

.change.accordian_btn+.accordian_content {
  display: block;
  box-shadow: 0 0.1rem 0.3rem #ccc;
  padding: 1rem;
  border-radius: 1rem;
}
<section class="questions">
  <div class="accordian">
    <button class="accordian_btn">How do I update my Billing Info</button>
    <div class="accordian_content">
      <p>Lorem ipsum dolor, sit amet consectetur adipisicing elit. Provident quasi esse possimus quas? Facilis odit ducimus a corporis consectetur eos adipisci dicta aliquid voluptatibus totam.</p>
    </div>
  </div>
  <div class="accordian">
    <button class="accordian_btn">How do I update my Billing Info</button>
    <div class="accordian_content">
      <p>Lorem ipsum dolor, sit amet consectetur adipisicing elit. Provident quasi esse possimus quas? Facilis odit ducimus a corporis consectetur eos adipisci dicta aliquid voluptatibus totam.</p>
    </div>
  </div>
  <div class="accordian">
    <button class="accordian_btn">How do I update my Billing Info</button>
    <div class="accordian_content">
      <p>Lorem ipsum dolor, sit amet consectetur adipisicing elit. Provident quasi esse possimus quas? Facilis odit ducimus a corporis consectetur eos adipisci dicta aliquid voluptatibus totam. Lorem ipsum dolor, sit amet consectetur adipisicing elit. Provident
        quasi esse possimus quas? Facilis odit ducimus a corporis consectetur eos adipisci dicta aliquid voluptatibus totam.</p>
    </div>
  </div>
</section>

View on CodePen

showdev
  • 28,454
  • 37
  • 55
  • 73
  • 1
    Hi and Welcome to SO. please take the [tour] first. Then read [how to ask questions here](https://stackoverflow.com/help/how-to-ask). After that edit the question to meet the guidelines and provide a [repro] for debugging details. Question including code must include the code directly in the question itself. A codepen link is inusfficient any may only be used as an extension to an existing code snippet. – tacoshy Aug 13 '21 at 19:32
  • 2
    Does this answer your question? [CSS transition disabled by \`display:none\`](https://stackoverflow.com/questions/39304002/css-transition-disabled-by-displaynone). Also see [Transitions on the CSS display property](https://stackoverflow.com/questions/3331353/transitions-on-the-css-display-property). – showdev Aug 13 '21 at 19:42

0 Answers0