JavaScriptで簡単なブロックパズルゲームを作成する際に問題が1つあります。私はグリッドに要素をスナップしようとしていますが、私の要素がドロップ可能として宣言されているグリッドの限界を壊している場合、ドロップを制限する方法を理解できません。ドラッグ可能なアイテムを限定コンテナにスナップする方法
私はフィドルを作成しました:demo
私はこのコードを使用:
HTML:
<div class="row">
<div class="cell"> </div>
<div class="cell"> </div>
<div class="cell"> </div>
<div class="cell"> </div>
<div class="cell"> </div>
</div>
<div class="element drag"> </div>
JS:
$(init);
function init() {
$('.drag').draggable({ snap: ".cell", revert: "invalid" });
$('.cell').droppable({
drop: handleElementDrop
});
}
function handleElementDrop(event, ui) {
dragger = ui.draggable;
dragger.draggable('disable');
$(this).droppable('disable');
dragger.position({ of: $(this), my: 'left top', at: 'left top' });
dragger.draggable('option', 'revert', false);
}
位置決めの問題を解決する方法要素がグリッドの外に出た場合のドロップを防止するグリッドの要素、またはそれが非droの場合ppableセル(すでにセルに要素がいくつかあると仮定している場合)?
また、私はHandleElementDrop関数とdraggableの位置で問題を抱えていますが、常にドロップされたセルに対して要素1のセルを配置します。