2

ウィジェットの架空のグリッドで構成されたダッシュボードがあります。グリッドには 2 つの行があり、各行には 3 つのスロットがあります。ユーザーがコンテンツの一部を別のスロットにドラッグできるようにしたいと考えています。これにより、既にスロットにあるコンテンツが置き換えられます (右に押し出され、グリッドから外れる可能性があります)。このコードを使用して、ドラッグ アンド ドロップを処理しています。コリジョンを検出して、対象のスロットでウィジェットを移動するにはどうすればよいですか?

<script type="text/javascript">
function allowDrop(ev)
{
ev.preventDefault();
}

function drag(ev)
{
ev.dataTransfer.setData("Text",ev.target.id);
}

function drop(ev)
{
ev.preventDefault();
var data=ev.dataTransfer.getData("Text");
ev.target.appendChild(document.getElementById(data));
}
</script>

各グリッドスロットは次のようなものです:

<div id="gridslot" ondrop="drop(event)" ondragover="allowDrop(event)"/>
<div id="widget" draggable="true" ondragstart="drag(event)"/>Some Content</div>
</div>
4

2 に答える 2

0

これは擬似コードです

function setContent(targetCell, content) {
    if (targetCell is off the grid)
        return;

    if (targetCell.content is not empty) {
        // we need to shift the targets content to the right
        setContent(targetCell.nextCellToTheRight, targetcell.content);
    }

    targetCell.content = content;
}

スペースを空けるために再帰的に右にシフトし、必要に応じて行全体を移動する可能性があることに注意してください。

于 2012-06-23T18:41:25.637 に答える
0

これはあなたの質問に直接答えるものではありませんが、この jquery プラグインを見てみたいと思います: Html5 Sortable

于 2012-09-06T14:49:39.617 に答える