JSFiddle - React, Tailwind, and code Playground
by Bahman ParsaManesh
HTML
<div class="element-animation"></div>
<button>Shake!</button>
SCSS
.element-animation{
width:50px;
height: 50px;
background: red;
animation: animationFrames ease-in-out 0.8s;
animation-iteration-count: 1;
transform-origin: 50% 50%;
-webkit-animation: animationFrames ease-in-out 0.8s;
-webkit-animation-iteration-count: 1;
-webkit-transform-origin: 50% 50%;
-moz-animation: animationFrames ease-in-out 0.8s;
-moz-animation-iteration-count: 1;
-moz-transform-origin: 50% 50%;
-o-animation: animationFrames ease-in-out 0.8s;
-o-animation-iteration-count: 1;
-o-transform-origin: 50% 50%;
-ms-animation: animationFrames ease-in-out 0.8s;
-ms-animation-iteration-count: 1;
-ms-transform-origin: 50% 50%;
}
@keyframes animationFrames{
0% {
transform: translate(0px,0px) ;
}
15% {
transform: translate(-25px,0px) ;
}
30% {
transform: translate(0px,0px) ;
}
45% {
transform: translate(-15px,0px) ;
}
60% {
transform: translate(0px,0px) ;
}
75% {
transform: translate(-5px,0px) ;
}
100% {
transform: translate(0px,0px) ;
}
}
@-moz-keyframes animationFrames{
0% {
-moz-transform: translate(0px,0px) ;
}
15% {
-moz-transform: translate(-25px,0px) ;
}
30% {
-moz-transform: translate(0px,0px) ;
}
45% {
-moz-transform: translate(-15px,0px) ;
}
60% {
-moz-transform: translate(0px,0px) ;
}
75% {
-moz-transform: translate(-5px,0px) ;
}
100% {
-moz-transform: translate(0px,0px) ;
}
}
@-webkit-keyframes animationFrames {
0% {
-webkit-transform: translate(0px,0px) ;
}
15% {
-webkit-transform: translate(-25px,0px) ;
}
30% {
-webkit-transform: translate(0px,0px) ;
}
45% {
-webkit-transform: translate(-15px,0px) ;
}
60% {
-webkit-transform: translate(0px,0px) ;
}
75% {
-webkit-transform: translate(-5px,0px) ;
}
100% {
-webkit-transform: translate(0px,0px) ;
}
}
@-o-keyframes animationFrames {
0% {
-o-transform: ...
JavaScript
$(document).ready(function(){
$("button").on("click", function(){
$("div").addClass("element-animation")
})
});