JSFiddle - React, Tailwind, and code Playground

by Emily Humphrey

HTML

<div id="content">
        <div id="block-home" class="content-inner">
            <h2>Content</h2>
            <p><a href="#about">Move Me</a></p>
        </div>    
    </div>

CSS

* { margin:0; padding:0; }

        body { font-family:Helvetica;}
    
        #content {
            height:200px;
            width:200px;
            
            position:absolute;
            left:0;
            top:0;
            margin: 50px;
            overflow:visible;
            padding:0; 
            
            /* - -Animation settings to be used -- */
            -webkit-animation-duration: 1s;
            -webkit-animation-timing-function: ease-in-out;
            -webkit-animation-iteration-count: 1;
        }
    
        .content-inner {
            position:absolute;
            padding:50px;
            overflow:hidden;
            background: -moz-linear-gradient(100% 100% 9deg, #f90, #f30);
            background: -webkit-gradient(linear, left top, left bottom, from(#999), to(#333));
            border-radius:15px;                
        }

        .content-inner a {
            color:#fff;
            text-decoration:none;
        }
        
        /* -- Animation stuff -- */
        #content.home-in { -webkit-animation-name: fadeIn;}
        #content.home-in-final { top: 0px; opacity: 1;}
        #content.home-out { -webkit-animation-name: fadeOut;}
        #content.home-out-final { top: 100px; opacity: .5;}
    
        @-webkit-keyframes fadeIn {
            0%      { opacity: .5; -webkit-transform: translateY(100px); }
            100% { opacity: 1; -webkit-transform: translateY(0%)); }
        }
        
        @-webkit-keyframes fadeOut {
            0%      { opacity: 1; -webkit-transform: translateY(0%); }
            100% { opacity: .5; -webkit-transform: translateY(100px) }
        }

JavaScript

$(document).ready(function()
        {
            
            $('a').bind('click', function(e)
            {
                e.preventDefault();
                this.blur();
                var position = $('#content').position();                
                if(position.top == 0)
                {
                    $('#content').attr('class', '').addClass('home-out');
                }
                else
                {
                    $('#content').attr('class', '').addClass('home-in');
                }
            });
            
            // Set final style
            $("#content").bind("webkitAnimationEnd", function()
            {
                if($("#content").hasClass('home-in')) $("#content").addClass('home-in-final');
                if($("#content").hasClass('home-out')) $("#content").addClass('home-out-final');
            });
        });