let offsetX;
let offsetY;
let parent = document.getElementById("parent");
function moveParent() {
parent.addEventListener("dragstart", function(event) {
offsetX = event.offsetX;
offsetY = event.offsetY;
})
parent.addEventListener("dragend", function(event) {
parent.style.top = (event.pageY - offsetY) + "px";
parent.style.left = (event.pageX - offsetX) + "px";
})
}
moveParent();
#parent {
background-color: gray;
height: 200px;
width: 200px;
position: absolute;
top: 0;
left: 0;
}
#son {
background-color: yellow;
height: 100px;
width: 100px;
position: absolute;
top: 0;
right: 0;
}
<div id="parent" draggable="true">
<div id="son"></div>
</div>
如您所见,代码中有一个 Parent ,其中有 Son 元素。有必要使“抓取”Son Parent 元素不移动,而仅在抓取自身时才移动,即灰色的东西(单击“运行代码”)。