jQuery 当位置为绝对时,可拖动元素在拖动开始时更改位置
jQuery draggable element changes position on drag start when position is absolute
当我单击该项目并开始拖动它时,它会更改它在拖动开始时的初始位置。这些元素在样式属性中具有 "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
});
}
}
});
容器是相对的,只有列表项是绝对的。当列出项目时,它们具有带有位置设置的样式属性。当我单击一个项目时,一开始它会更改它的位置并从更改后的位置开始拖动,而不是从我单击它时的位置开始拖动。
这是一个fiddle:
https://jsfiddle.net/oe2955m5/
这是因为父容器的规模属性。当我取下秤时,它们会按预期移动。
当我单击该项目并开始拖动它时,它会更改它在拖动开始时的初始位置。这些元素在样式属性中具有 "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
});
}
}
});
容器是相对的,只有列表项是绝对的。当列出项目时,它们具有带有位置设置的样式属性。当我单击一个项目时,一开始它会更改它的位置并从更改后的位置开始拖动,而不是从我单击它时的位置开始拖动。
这是一个fiddle: https://jsfiddle.net/oe2955m5/
这是因为父容器的规模属性。当我取下秤时,它们会按预期移动。