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') */;
}