2015-03-10 2 views
2

В этом Fiddle я сделал красный контейнер перетаскиваемым. Как вы можете видеть, это работает нормально, но когда зеленый контейнер (родительский контейнер) прокручивается немного, а затем красный контейнер перетаскивается, перетаскивание не происходит в правильном положении.Перетаскивание элемента происходит неправильно при прокрутке контейнера

Может кто-нибудь, пожалуйста, сообщите мне, что может быть проблемой?

Я пробовал e.pageX, e.clientX и e.offsetX, но все еще не мог это исправить. (или, возможно, я пропустил что-то)

+1

считает scrolltop при перетаскивании –

+0

Или добавить JQuery UI, перетаскивать, который не имеет проблемы. – j08691

+0

@NoDownvotesPlz тоже это рассмотрел .. Я еще раз проверил его. –

ответ

3

Вам нужно добавить верхнее положение прокрутки в вашу форму. Если вы хотите, чтобы ваш квадрат пребывание в правильном положении, проверьте, что:

function repositionShape(e) { 
    $self = repositionStart.self; 
    $commentSection = repositionStart.commentSection; 

    var dy = $('.wrapper').scrollTop(); // Get wrapper scroll position 

    $self.css({ 
    'left': e.clientX - repositionStart.offset.left, 
     'top': e.clientY - repositionStart.offset.top +dy // Add delta to your square position 
    }); 
} 
+0

Спасибо, я уже пробовал это .. не работал. [Фидл] (http://jsfiddle.net/venkateshwar/xzkby36n/14/). –

+1

Просто измените функцию repositionShape! [Fiddle] (http://jsfiddle.net/xzkby36n/15/) –

+0

Спасибо большое :) –

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