JSFiddle - React, Tailwind, and code Playground
by amrendra kumar
HTML
<div class="container">
<button onclick="toggleVisibility()">Toggle Visibility</button>
<div class="box" id="animatedBox"></div>
</div>
CSS
.container {
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
}
.box {
width: 100px;
height: 100px;
background-color: #3498db;
visibility: hidden;
opacity: 0;
transition: visibility 0s, opacity 0.5s ease-in-out;
transform-origin: center;
}
@keyframes showAnimation {
0% {
visibility: hidden;
opacity: 0;
transform: scale(0);
}
50% {
visibility: visible;
opacity: 0.8;
transform: scale(1.2);
}
100% {
opacity: 1;
transform: scale(1);
}
}
@keyframes hideAnimation {
0% {
opacity: 1;
transform: scale(1);
}
50% {
opacity: 0.8;
transform: scale(1.2);
}
100% {
visibility: hidden;
opacity: 0;
transform: scale(0);
}
}
.box.visible {
animation: showAnimation 0.5s ease-in-out forwards;
}
.box.hidden {
animation: hideAnimation 0.5s ease-in-out forwards;
}
JavaScript
function toggleVisibility() {
console.log('running')
const box = document.getElementById('animatedBox');
box.classList.toggle('visible');
/* box.classList.toggle('hidden') */;
}