2014-10-14 3 views
0

У меня есть объект перетаскивания, установленный в положение: относительный, но мне нужно изменить его по сравнению с абсолютным только при его перетаскивании, и я хочу, чтобы объект оставался в исходном пространстве. Я попытался установить "перетащить" на этом пути:положение позиции, сверху и слева для объекта с перетаскиванием

$('obj').draggable({ 
    cursor: 'move', 
    revert: true, 
    drag: function() { 
     var posizione = $(this).position(); 
     var posizione_x = posizione.left; 
     var posizione_y = posizione.top; 
     $(this).css({ 
      "left": posizione_x, 
      "top": posizione_y, 
      "position": "absolute" 
     }); 
    }, 
    stop: function() { 
     $(this).css("position", "relative"); 
    } 
}) 

или таким образом:

$('obj').draggable({ 
    cursor: 'move', 
    revert: true, 
    drag: function() { 
     var posizione_x = $(this).offsetLeft; 
     var posizione_y = $(this).offsetTop; 
     $(this).css({ 
      "left": posizione_x, 
      "top": posizione_y, 
      "position": "absolute" 
     }); 
    }, 
    stop: function() { 
     $(this).css("position", "relative"); 
    } 
}) 

, но он не работает.

+0

.offset() слева и -offset() сверху не работают тоже. – Ting

+0

не работает = мой объект имеет абсолютное положение, но имеет верхний: 0 и левый: 0 – Ting

ответ

1

Я думаю, что вам нужно .offset().left и .offset().top

Не могли бы вы подробно «не работает» (ошибка в консоли? Что случилось? Как positionned элемент?)

И $('obj') цель <obj> тег, вы уверены, что ваш элемент хорошо ориентирован?

Может быть, вы пытаетесь сделать что-то вроде этого:.. http://jsfiddle.net/KyleKatarn/awjh79uw/1/

Смежные вопросы