JSFiddle - React, Tailwind, and code Playground

by HYEONGJINKIM

HTML

<div id="background"></div>
<div id="chest">
	<div class="heart left side top"></div>
	<div class="heart center">&hearts;</div>
	<div class="heart right side"></div>
</div>

CSS

@-webkit-keyframes beat {
    0% {-webkit-transform: scale(1) rotate(225deg); -webkit-box-shadow:0 0 40px rgba(213,9,60,1);}
    50% {-webkit-transform: scale(1.1) rotate(225deg); -webkit-box-shadow:0 0 70px rgba(213,9,60,0.6);}
    100% {-webkit-transform: scale(1) rotate(225deg); -webkit-box-shadow:0 0 40px rgba(213,9,60,1);}
}
@-moz-keyframes beat {  
    0% {-moz-transform: scale(1) rotate(225deg); -moz-box-shadow:0 0 40px rgba(213,9,60,1);}
    50% {-moz-transform: scale(1.1) rotate(225deg); -moz-box-shadow:0 0 70px rgba(213,9,60,0.6);}
    100% {-moz-transform: scale(1) rotate(225deg); -moz-box-shadow:0 0 40px rgba(213,9,60,1);}
}
@keyframes beat {  
    0% {transform: scale(1) rotate(225deg); box-shadow:0 0 40px #d5093c;}
    50% {transform: scale(1.1) rotate(225deg); box-shadow:0 0 70px #d5093c;}
    100% {transform: scale(1) rotate(225deg); box-shadow:0 0 40px #d5093c;}
}

#background {
    position:fixed;
    top:0;
    left:0;
    z-index:-1;
    width:100%;
    height:100%;
    background: #ffa5a5;
    background: -moz-linear-gradient(top,  #ffa5a5 0%, #ffd3d3 100%);
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ffa5a5), color-stop(100%,#ffd3d3));
    background: -webkit-linear-gradient(top,  #ffa5a5 0%,#ffd3d3 100%);
    background: linear-gradient(top,  #ffa5a5 0%,#ffd3d3 100%);
}
#chest {
    position:relative;
    width:500px;
    height:450px;
    margin:0 auto;    
}
.heart {
    position:absolute;
    z-index:2;
    background: -moz-linear-gradient(-180deg,  #F50A45 0%, #d5093c 40%);
    background: -webkit-gradient(linear, right 50%, left 50%, color-stop(0%,#F50A45), color-stop(40%,#d5093c));
    background: -webkit-linear-gradient(-180deg,  #F50A45 0%,#d5093c 40%);
    background: linear-gradient(-180deg,  #F50A45 0%,#d5093c 40%);
    -webkit-animation: beat 0.7s ease 0s infinite normal;
    -moz-animation: beat 0.7s ease 0s infinite normal;
    animation: beat 0.7s ease 0s infinite normal;
}
.heart.center {
 ...

JavaScript

var viewportWidth = jQuery(window).width(),
    viewportHeight = jQuery(window).height(),
    $Chest = jQuery('#chest'),
    elWidth = $Chest.width(),
    elHeight = $Chest.height(),
    elOffset = $Chest.offset();

var nTop = (viewportHeight/2) - (elHeight/2);
console.log(nTop);
$Chest.css("top", nTop);

    /*jQuery(window)
        .scrollToptop(elOffset.top + (elHeight/2) - (viewportHeight/2));
        .scrollLeft(elOffset.left + (elWidth/2) - (viewportWidth/2));*/

console.log(elOffset.top + (elHeight/2) - (viewportHeight/2));