我有一些代码来演示这个问题.
我有一个可以拖动的元素,效果很好.我包含了一个按钮,允许用户"放大".这是当它出错的时候.
问题是,单击zoom 按钮后,draggable
的containment
部分不再遵守父项的左/顶部/宽度和高度约束.它仍然受到限制,但受到意想不到的边界位置的限制.
<body style="padding:50px">
<button id="btn">Zoom in</button>
<div id="wrapper" style="background-color:aliceblue;padding:50px;">
<div id="innerWrapper" style="background-color: ivory; min-height: 200px; width: 400px; ">
<div id="draggable" style="background-color:burlywood;max-width:100px;">Move me</div>
</div>
</div>
<script src="https://code.jquery.com/jquery-3.7.1.min.js" integrity="sha256-/JqT3SQfawRcv/BIHPThkBvs0OEvtFFmqPF/lYI/Cxo=" crossorigin="anonymous"></script>
<script src="https://code.jquery.com/ui/1.13.2/jquery-ui.min.js" integrity="sha256-lSjKY0/srUM9BE3dPm+c4fBo1dky2v27Gdjm2uoZaL0=" crossorigin="anonymous"></script>
<script>
$("#draggable").draggable({containment:"#innerWrapper"});
const btn = document.getElementById("btn");
btn.addEventListener("click", zoom);
function zoom() {
document.getElementById("innerWrapper").style.transform = "scale(1.2,1.2)";
}
</script>
</body>
事实上,每次单击提供的zoom 按钮时,它都会更改包容边界.
我try 将drag
event callback添加到可拖动中,但仍然无法知道如何解决这个问题