0

I'm having issues in adding transitions to a hamburger menu.

const mobileMenu = document.getElementById('menu-btn');
const mobileLinks = document.getElementById('links')

mobileMenu.addEventListener('click', () => {
  console.log('Clicked')
  if (mobileLinks.style.display === "none") {
    mobileLinks.style.display = "block";
    mobileLinks.style.width = "100%";
    mobileLinks.style.transition = "width 2s ease-in-out";
  } else {
    mobileLinks.style.display = "none";
    mobileLinks.style.width = "0%";
    mobileLinks.style.transition = "width 2s ease-in-out";
  }
})
<div class="menu" id="menu-btn">
  <div class="hamburger"></div>
  <div class="hamburger"></div>
  <div class="hamburger"></div>
</div>

<div class="mobile-links" id="links" style="display:none;">
  <ul>
    <li><a href="#">Item 1</a></li>
    <li><a href="#">Item 2</a></li>
    <li><a href="#">Item 3</a></li>
    <li><a href="#">Item 4</a></li>
    <li>
      <a href="#" Item 5</a></li>
    <li><a href="#">Item 6</a></li>
  </ul>
</div>

But the transition property is not working for some reason.

Mr_Green
  • 39,139
  • 43
  • 154
  • 250
Dhiman
  • 51
  • 6
  • [`display`](//developer.mozilla.org/docs/Web/CSS/display) is not animatable. See [Using CSS transitions](//developer.mozilla.org/docs/Web/CSS/CSS_Transitions/Using_CSS_transitions). – Sebastian Simon Feb 25 '22 at 08:19

0 Answers0