これはおそらく非常に簡単ですが、私はいつも複雑すぎると思います。
固定の幅/高さ+ float:leftで#draggable /#droppableを使用して簡単なテストを設定しました。
次に、リセットボタンを使用して、#droppableにスナップした後、#draggableを元の状態にリセットできるようにします。 (ボトムライン)
$(document).ready(function() {
$("#draggable").draggable
({
revert: 'invalid',
snap: '#droppable',
snapMode: 'corner',
snapTolerance: '22'
});
});
$("#droppable").droppable
({
accept: '#draggable',
drop: function(event, ui)
{
$(this).find("#draggable").html();
}
});
$(".reset").click(function() {
/* What do I put here to reset the #draggable to it's original position before the snap */
});
ドラッグ可能なアイテムは、私が知っている元の位置を追跡しません。ドラッグ中のみ、スナップバックされます。ただし、これは自分で行うことができます。
$("#draggable").data({
'originalLeft': $("#draggable").css('left'),
'origionalTop': $("#draggable").css('top')
});
$(".reset").click(function() {
$("#draggable").css({
'left': $("#draggable").data('originalLeft'),
'top': $("#draggable").data('origionalTop')
});
});
私はこれをプロジェクトで使用しました
$("#reset").click(function () {
$(".draggable-item").animate({
top: "0px",
left: "0px"
});
});
私のためにトリックをしました
私は次のことで大成功を収めました。
$(".draggable-item").removeAttr("style");
以下が元の位置にリセットする最も簡単な方法であることがわかりましたが、アイテムをドラッグしたままにしたい場合、これは単独では機能しません
$(".draggable-item").removeAttr('style');
これにより、元の位置にリセットしてアイテムをドラッグ可能に保つことができました。
$("#reset").click(function () {
// Reset position
$(".draggable-item").removeAttr('style');
// Destroy original draggable and create new one
$(".draggable-item").draggable("destroy");
$(".draggable-item").draggable();
});
私はh0dgesの基本的な考え方を使用しました。作成したボールは元の位置に戻りましたが、ボールにするスタイルを失いました。したがって、ボールのスタイルを保持し、上下のスタイルをリセットして元の位置に戻しました。
function endRound() {
$(".ball").css({"top":"", "left":""});
}