私は、クラスが.screens
のテーブルを持っています。そのセルはドロップ可能です。私はセル内のリストから項目をドラッグできます。私はまた、ユーザーが正しい場所に表示されるようにアイテムをドロップした場所を計算しようとしています。しかし、ユーザーが最初のアイテム以外のセルにアイテムをドロップしようとすると、ドロップ位置が正しく計算されないという問題があります。この計算のコードは次のとおりです。ドロップ可能な要素の位置が正しく計算されない
var pos = ui.draggable.offset(), dPos = $(this).offset();
var droppedTop = ui.position.top - $(this).offset().top + $('#mainContainer').scrollTop();
var droppedLeft = ui.position.left - $(this).offset().left + $('#mainContainer').scrollLeft();
次に、ドロップされたアイテムにこれらの左上の位置を割り当てます。このコードは、テーブルは存在しませんが、divのみの場合は完全に機能します。ここにフィドルがあります:https://jsfiddle.net/vaxobasilidze/moafzcx8/2/アイテムをテーブルにドラッグアンドドロップして問題を確認します。任意のアイデアをどのようにこれを修正するには?
。 –
@AndyG私はそれをフィドルで修正しましたが、動作しません。 #mainContainer(now #mainDiv)はこのテーブルの親であり、スクロールする可能性があります。 –
$( '。screenContainer')。droppable(....)を$( '。screens')。droppable(....)に変更します。これは、個々の.screenContainer要素ではなく、.screensコンテナ全体に基づいて上および左の位置を設定します。 –