当位置是绝对的时,jQuery draggable元素在拖动开始时改变位置

时间:2018-02-04 22:50:44

标签: jquery draggable

当我点击该项目并开始拖动它时,它会在拖动开始时更改它的初始位置。元素在style属性中具有“left”和“top”属性。当他们有绝对的位置时就会发生这种情况。

enter image description here

和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/

1 个答案:

答案 0 :(得分:1)

这是因为父容器的scale属性。当我移除刻度时,它们会移动。