JSFiddle - React, Tailwind, and code Playground
by sridhar reddy
HTML
<div class="wrapper">
<div class="sidebar">
<div class="icons">
<a href="#"><img src='http://placehold.it/73/200' class="skate"></a>
</div>
<div class="menu">
<ul>
<a href="#">
<li>Explore</li>
</a>
<a href="#">
<li>Shop</li>
</a>
<a href="#">
<li>Learn</li>
</a>
</ul>
</div>
</div>
<script>
var icons = document.getElementsByClassName("icons")[0];
var skateboard = document.getElementsByClassName('skate')[0];
icons.addEventListener('click', (e) => {
if (e.target.className === "skate") {
skateboard.classList.add('skateOff');
} else {
navigation.classList.add('slideIn');
}
})
</script>
CSS
@keyframes skateOff {
0% {
transform: rotate(0);
}
50% {
transform: rotate(49deg);
}
100% {
transform: translateX(-300px);
}
}
.skateOff {
animation: skateOff ease-in 1s forwards;
}
.x {
visibility: hidden;
}
.xslide {
animation: slideOut .8s;
animation-timing-function: ease;
animation-delay: 2s;
animation-fill-mode: forwards;
}
.menu {
visibility: hidden;
color: black;
width: 10em;
background-color: white;
border-radius: 4px;
}
.slideOut {
animation: slideOut 1s;
animation-fill-mode: forwards;
animation-delay: 1.2s;
}
@keyframes slideOut {
0% {
transform: translateX(-50%);
}
100% {
visibility: visible;
transform: translateX(0);
}
}
.slideIn {
animation: slideIn 2s;
animation-timing-function: ease;
animation-fill-mode: forwards;
}
@keyframes slideIn {
0% {
visibility: visible;
transform: translateX(0);
}
100% {
transform: translateX(-50%);
}
}