Принимая ваш точный код, вы получите это:
$(function() {
$("#circle").draggable();
});
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<div>
<svg width="800" height="800" xmlns="http://www.w3.org/2000/svg">
<title></title>
<desc></desc>
<circle id="circle" cx="60" cy="60" r="60" style="fill: #ff9; stroke: red;">
</circle>
</svg>
</div>
<p id="demo"></p>
Да, вы можете перетащить круг и переместить его, но как только вы отпустите, ему будет назначен новый x,y
в основном с помощью стиля.Это будет иметь разные результаты.Попробуйте немного перетащить его и посмотрите, что произойдет.
Если вы оберните SVG или нацеливаетесь на него, вы можете получить лучшие результаты при перетаскивании.
$(function() {
$("svg").draggable({
containment: "parent"
});
});
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<div class="svg-wrap" style="width: 800px; height: 800px;">
<svg width="122" height="122" xmlns="http://www.w3.org/2000/svg">
<title></title>
<desc></desc>
<circle id="circle" cx="60" cy="60" r="60" style="fill: #ff9; stroke: red;">
</circle>
</svg>
</div>
<p id="demo"></p>
Это позволяет вам перемещать круг в виде SVG внутри родительского контейнера.
Надеюсь, что это поможет.