Mam główny div 150px szerokości i 500px wysokości, z przelewem auto przewijania (lub), który trzyma kilka obrazów, a więc:Weird przesunięcie w jQuery UI Draggable
<div id="images" style="width: 150px; height: 500px; overflow: scroll;">
<img src="images/swift1.jpg" style="width: 150px; height: 150px;" />
<img src="images/swift2.jpg" style="width: 150px; height: 150px;" />
<img src="images/swift3.jpg" style="width: 150px; height: 150px;" />
<img src="images/swift4.jpg" style="width: 150px; height: 150px;" />
<img src="images/swift5.png" style="width: 150px; height: 150px;" />
<img src="images/swift6.JPG" style="width: 150px; height: 150px;" />
</div>
I "Zaimplementowałem JQuery UI przeciągalny, aby przeciągnąć obrazy z tego div do innego div i upuść je.
$('#images img').draggable({
revert:true,
proxy:'clone',
snap: true,
onDrag: function(e, ui) {
console.log('test');
}
});
$('.drop_image').droppable({
onDragEnter:function(){
$(this).addClass('over');
},
onDragLeave:function(){
$(this).removeClass('over');
},
onDrop:function(e,source){
$(this).removeClass('over');
if ($(source).hasClass('assigned')){
$(this).append(source);
} else {
var c = $(source).clone().addClass('assigned');
$(this).empty().append(c);
c.draggable({
revert:true
});
$(this).children('img').css('width', '100%').css('height', '100%');
}
}
});
Jednakże, ze względu na przewijania na div, wszystkie obrazy, które znajdują się poniżej dolnej granicy początkowej #images, po przeciągnięciu, są znacznie od kursora myszy przez co offsetowego mieli w oryginalnym div. Wciąż są upuszczane poprawnie, gdy mysz znajduje się nad odbiorczym elementem div, ale przeciągnięty obraz jest wyświetlany w dziwnym miejscu, dopóki nie zostanie upuszczony.
Ktoś wie, jak to poprawić? Zakładam, że muszę coś zrobić w wywoływaniu onDrag, aby ustawić położenie przeciągniętego obiektu na równe z pozycją kursora myszy, ale nie jestem pewien, jaka powinna być składnia.