JSFiddle - React, Tailwind, and code Playground
by karlhorky
HTML
<div>
<a class="btn" href="/register">Register for free!</a>
</div>
<button>Play animation</button>
CSS
@-webkit-keyframes flipInY {
0% {
-webkit-transform: perspective(400px) rotate3d(0,1,0,90deg);
transform: perspective(400px) rotate3d(0,1,0,90deg);
-webkit-animation-timing-function: ease-in;
animation-timing-function: ease-in;
opacity: 0
}
40% {
-webkit-transform: perspective(400px) rotate3d(0,1,0,-20deg);
transform: perspective(400px) rotate3d(0,1,0,-20deg);
-webkit-animation-timing-function: ease-in;
animation-timing-function: ease-in
}
60% {
-webkit-transform: perspective(400px) rotate3d(0,1,0,10deg);
transform: perspective(400px) rotate3d(0,1,0,10deg);
opacity: 1
}
80% {
-webkit-transform: perspective(400px) rotate3d(0,1,0,-5deg);
transform: perspective(400px) rotate3d(0,1,0,-5deg)
}
100% {
-webkit-transform: perspective(400px);
transform: perspective(400px)
}
}
@keyframes flipInY {
0% {
-webkit-transform: perspective(400px) rotate3d(0,1,0,90deg);
transform: perspective(400px) rotate3d(0,1,0,90deg);
-webkit-animation-timing-function: ease-in;
animation-timing-function: ease-in;
opacity: 0
}
40% {
-webkit-transform: perspective(400px) rotate3d(0,1,0,-20deg);
transform: perspective(400px) rotate3d(0,1,0,-20deg);
-webkit-animation-timing-function: ease-in;
animation-timing-function: ease-in
}
60% {
-webkit-transform: perspective(400px) rotate3d(0,1,0,10deg);
transform: perspective(400px) rotate3d(0,1,0,10deg);
opacity: 1
}
80% {
-webkit-transform: perspective(400px) rotate3d(0,1,0,-5deg);
transform: perspective(400px) rotate3d(0,1,0,-5deg);
opacity: 1
}
100% {
-webkit-transform: perspective(400px);
transform: perspective(400px);
opacity: 1
}
}
.flipInY {
-webkit-backface-visibility: visible!important;
...
JavaScript
document.querySelector('button').onclick = function () {
var btn = document.querySelector('.btn');
btn.className += ' flipInY animated';
window.setTimeout(function() {
btn.className = 'btn';
}, 1500);
};