Итак, я создал очень короткую программу перетаскивания, которая работает, однако есть небольшой глюк.
создал js fiddle здесь просто чтобы показать вам проблему, с которой я столкнулся
Как вы можете видеть, вы можете бросить карты в пунктирные слоты.проблема возникает, когда вы перемещаете полосу прокрутки div (которая содержит слоты).Карты, кажется, не придерживаются пунктирных слотов.Теперь я предполагаю это из-за абсолютного и относительного положения.Я пытался изменить их, но это создает больше проблем.Я также попробовал метод смещения, где, когда прокручивается div, он вычисляет смещение слотов, а затем использует эти смещения для позиционирования автомобилей.Это тоже не очень хорошо работает.код приведен ниже.
$('#dropdiv').scroll(function() {
var p = $( "#answerone" );
var position = p.offset();
console.log( "leftoffset: " + position.left + ", top: " + position.top );
var position3 = p.position();
console.log( "leftpos: " + position3.left + ", top: " + position3.top );
// ui.draggable.addClass( $(this).attr('id') );
$("#card1").draggable( 'enable' );
// $("#card1").droppable( 'enable' );
// $("#card1").draggable.position( { of: $("#card1"), my: 'left top', at: 'left top' } );
$("#card1").draggable( 'option', 'revert', false );
var position2 = $("#card1").offset();
console.log( "left2222: " + position2.left + ", top: " + position2.top );
var toppos=position.top-position2.top;
console.log("div position.top - "+position.top );
console.log("element position2.top - "+position2.top);
console.log("relativvtop - "+toppos);
// console.log("scrollTop - "+$("#dropdiv")scrollTop());
$("#card1").css( {postion:'absolute',top: toppos+'px'});
});
edit1 : если у меня нет прокручиваемого div, то он работает отлично.но по некоторым причинам дизайна мне нужен прокручиваемый div.
что я делаю не так.как мне это исправить.Любая помощь приветствуется.