JSFiddle - React, Tailwind, and code Playground
HTML
<div id="draggable" class="ui-widget-content">
<p id="distance-print">Revert the original</p>
</div>
CSS
#draggable {
position: relative;
width: 100px;
height: 100px;
padding: 0.5em;
float: left;
margin: 0 10px 10px 0;
background-color: red;
border: 2px solid gray;
}
JavaScript
var x1=x2=y1=y2=0;
var maxdistance=1000;
var factor=2;
$(function() {
$("#draggable").draggable({
helper: function(){
return $('<div></div>').css('opacity',0);
},
start: function(e, ui) {
y1 = ui.position.top;
x1 = ui.position.left;
},
stop: function(){
var $this = $(this);
$this.stop().animate({
top: $this.data('starttop')
},1000,'easeOutCirc');
},
drag: function(event, ui){
y2 = ui.position.top;
x2 = ui.position.left;
dist = parseInt(Math.sqrt(Math.pow((x2-x1),2)+Math.pow((y2-y1),2)), 10);
ydist = (y2-y1);
xdist = (x2-x1);
$("#draggable").css("top", (y1+ydist*((maxdistance-ydist)/maxdistance)));
$("#draggable").css("left", (x1+xdist*((maxdistance-xdist)/maxdistance)));
}
});
});