приведенное ниже решение немного нарушает анимацию, но создает спорный фон.
Ваша проблема в том, что верхний и левый редактируются после завершения перетаскивания, поэтому я попытался отредактировать их с помощью функции тайм-аута,
Смотрите ниже фрагмент:
let newtop = newleft = 0;
let dataMain;
var move = {
drag: function() {
main = $('main');
main.draggable({
drag: function(event, ui) {
newtop = Math.abs(ui.position.top);
newleft = Math.abs(ui.position.left);
$(this).css({
'padding-right': newleft,
'padding-bottom': newtop,
});
setTimeout(function(){
main.css({
'top':-newtop,
'left':-newleft
})
},1);
},
scroll: false,
});
}
}
move.drag();
body {
margin: 0;
overflow: hidden
}
main {
width: 100vw;
height: 100vh;
background: url('https://previews.123rf.com/images/kitch/kitch1302/kitch130200221/18077895-an-illustative-grid-graph-pattern-or-background.jpg');
background-repeat: repeat;
}
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js"></script>
</head>
<body>
<main>
</main>
</body>