当我点击该项目并开始拖动它时,它会在拖动开始时更改它的初始位置。元素在style属性中具有“left”和“top”属性。当他们有绝对的位置时就会发生这种情况。
和jquery:
最初是这样的:$('.tree li').draggable();
我也试过这个:
$('.tree li').draggable({
containment: '.tree',
snap: '.tree',
start: function (event, ui) {
if ($(event.target).is('.ui-draggable-dragging')) {
var x = $(event.target).offset().left;
var y = $(event.target).offset().top;
$(this).css({
'left': x,
'top': y
});
}
}
});
容器是相对的,只有列表项是绝对的。列出项目时,它们具有已设置位置的样式属性。当我点击一个项目时,它会在一开始就更改它的位置并从更改的位置开始拖动,而不是在我点击它时从该位置拖动。
这是一个小提琴: https://jsfiddle.net/oe2955m5/
答案 0 :(得分:1)
这是因为父容器的scale属性。当我移除刻度时,它们会移动。