私はjqueryのアニメーションに精通していないが、私は修正するために、いくつかのものを見つけましたスワップの問題。
あなたは(「ドラッグ可能なクラスを持つdivタグ」)が追加syleプロパティプレースホルダは、leftとtop属性を持つ現在の位置から移動してきたどのくらい意味left: 151px; top: 22px
とstyle="position: relative; z-index: auto; left: 151px; top: 22px;"
、プレースホルダをドラッグすると。あなたが異常な動作
が代わりに
<div class="pinChildContainer droppable">
<div class="draggable">
<div class="pins">
<img class="pinImage" src="img/paymentServices.jpg" alt="Payment Services" width="188" height="185" />
<p class="pinTitle">Payment Services</p>
</div>
</div>
</div>
(今.pinsを入れ替える)へ
<div class="pinChildContainer droppable">
<div class="pins draggable">
<img class="pinImage" src="img/paymentServices.jpg" alt="Payment Services" width="188" height="185" />
<p class="pinTitle">Payment Services</p>
</div>
</div>
.draggable変更の内容を入れ替えることを見ている理由ですあなたが
swapping .draggable placeholders
ある現在のコードで
、
.pinsをスワップするコードは次のとおりです
var dragged = $(ui.draggable);
var fromContainer = dragged.parent();
var toContainer = $(this);
var displaced = $(this).find('.pins');
// added class .from and .to classes to identify the placeholders
var fromPinContainer = dragged.find('.pins').removeClass('from to');
fromPinContainer.addClass("from");
displaced.removeClass('from to');
displaced.addClass("to");
if (fromContainer.is(toContainer)) {
dragged.animate({ left: 0, top: 0 });
}
dragged.animate({ top: 0, left: 0 });
displaced.animate({ bottom: 0, left: 0 }, finalize);
function finalize() {
fromContainer.find('.draggable').append(toContainer.find('.to'));
toContainer.find('.draggable').append(dragged.find('.from'));
}
finalize();
JSFiddle
私はそれが磨かれたコードではないだと思うが、それはあなたが探しているものの効果を与えます。
私はjsfiddleリンクと一緒に私のjqueryを更新しましたが、私はまだ同じ問題に遭遇しています。 – Tyharo
スワップの原因となっている視覚的な問題については、「スワップ時の視覚的な問題」_を詳しく説明できますか? –
要素の位置を入れ替えると、ドラッグされたピンが間違った方向からアニメートされ、スワップ中にその位置に移動します。あなたがjsfiddleを見て、別のピンにピンをドラッグしようとすると、スワップ時に問題を見ることができます。 – Tyharo