JSFiddle - React, Tailwind, and code Playground

HTML

<a class="logo">Link</a>
<a class="reset">reset</a>

CSS

body {
    -webkit-transform: translate3d(0, 0, 0);
}

@-webkit-keyframes wiggle{
     0% {-webkit-transform: rotate(0deg);}
    15% {-webkit-transform: rotate(6deg);}
    16% {-webkit-transform: rotate(6deg);}
    30% {-webkit-transform: rotate(-6deg);}
    31% {-webkit-transform: rotate(-6deg);}
    50% {-webkit-transform: rotate(4deg);}
    51% {-webkit-transform: rotate(4deg);}
    71% {-webkit-transform: rotate(-1deg);}
    72% {-webkit-transform: rotate(-1deg);}
    89% {-webkit-transform: rotate(0deg);}
    100% {-webkit-transform: rotate(0deg);}
}

.wiggle{
    -webkit-transition: all ease-in-out;
    -webkit-animation: wiggle 2.2s ease-in-out 0s 1 normal;
    -webkit-transform-origin: 224px 33px;   
}


/* ================= */
/* JUST SOME STYLING */

body { background:#333;}

a { float:left; position:relative; top:40px; left:40px; width:200px; height:50px; background:#ff8000; text-align:center; line-height:50px; color:#fff;}

a.reset {margin-left:20px; width:50px; height:50px; background:#80f;}

JavaScript

$(document).ready(function(){
    var logo = $('.logo');
    var reset = $('.reset');
    
    logo.click(function(){
        logo.animate({top: '100px'}, 700);
        logo.addClass('wiggle');
    });
    reset.click(function(){
        logo.removeClass('wiggle');
        logo.css({top: '40px'});
    });
});