JSFiddle - React, Tailwind, and code Playground
HTML
<script src="https://code.jquery.com/jquery-1.12.3.js"></script>
<div class="target" style="width:40px; height:40px; background:blue;float:right;margin-top:-50px;margin-right:15px;position:relative;"></div>
<div style="margin:25%;">
<div class="buttonHolder">
<button class="btn btn-success addToCartBtn"><span class="addToCartTxt">Add to cart</span></button>
</div>
<div class="buttonHolder">
<button class="btn btn-success addToCartBtn"><span class="addToCartTxt">Add to cart</span></button>
</div>
<div class="buttonHolder">
<button class="btn btn-success addToCartBtn"><span class="addToCartTxt">Add to cart</span></button>
</div>
</div>
CSS
.addToCartBtn{
transition:all .9s ease;
}
.shrink {
-webkit-transform: scale(0.4,1);
-ms-transform: scale(0.4,1);
transform: scale(0.4,1);
border-radius: 100%;
border-radius: 50%;
}
.fadeText {
transition:all 0.7s ease;
opacity:0;
}
.buttonHolder{
transition:all .9s ease;
}
.slideToCart{
-moz-transform: translate(540px,-200px);
-o-transform: translate(540px,-200px);
-ms-transform: translate(540px,-200px);
position:absolute;
}
JavaScript
$( document ).ready(function() {
var position = $('.target').position();
console.log(position);
var left = position.left + 'px';
var top = position.top + 'px';
console.log("Number of .slideToCart element: " + $('.slideToCart').length);
$('.slideToCart').css({
'-webkit-transform' : 'translate(left, top)',
'-moz-transform' : 'translate(left, top)',
'-ms-transform' : 'translate(left, top)',
'-o-transform' : 'translate(left, top)',
'transform' : 'translate(left, top)'
});
$('.slideToCart').css('transform', 'translate(50px, 50px)');
$('.slideToCart').css('-webkit-transform', 'translate(50px, 50px)');
var cartCss = $('.slideToCart');
console.log(cartCss)
$('.buttonHolder').click(function(){
$(this).find("span").toggleClass('fadeText');
var button = $(this).find("button");
button.toggleClass('shrink');
var buttonHolder = $(this)
setTimeout(function() {
buttonHolder.addClass('slideToCart')
}, 1000);
});
});