I am trying to make a navbar appear and disappear with some JS when clicking on a button element. I managed to do that bit, but I would like to add a transition so that the navbar pops up smoothly. I am a bit confused and don’t quite know where to start.
Sorry if my question is not well formulated.
This is my html bit
<section class="main-container"> <header class="main-header"></header> <button class="displayer">Click Here</button> </section>
My CSS
.main-container {
width: 100vw;
height: 100vh;
}
.main-header {
width: 100%;
height: 4em;
background-color: black;
position: absolute;
top: 0;
}
And the bit of JS I wrote
const remover = document.querySelector(".displayer");
function vanish() {
const navBar = document.querySelector(".main-header");
const display = getComputedStyle(navBar).display;
if (display === "none") {
navBar.style.display = "block";
} else {
navBar.style.display = "none";
}
}
remover.addEventListener("click", vanish);
3
Answers
can you also show html codes..
To add a smooth transition effect when showing or hiding the navbar, you can use CSS transitions along with JavaScript. Here’s an updated version of your code that includes a fade-in and fade-out effect using opacity and transition properties:
You could use a transition and toggle a class that changes opacity and transform.