0

マウス座標をキャプチャし、それに応じて物を移動することで、ドキュメントから物をドラッグしようとしています。現在、私は document.addEventListener を使用していますが、これはウィンドウの外にドラッグしてもうまくいきます。機能は増加しており、複雑さに追いつくために、代わりに div と div1.addEventListener を使用したいと考えています。

しかし、この変更により、ウィンドウの外はもちろん、div の外にドラッグすることもできなくなりました。私はドラッグのみについて話している(div内でマウスを押し下げてから、マウスをそこからドラッグする)。divの外に出るとすぐに壊れます。

何が起こっているのかわかりません。ずっと前に実験しましたが、これが動作するコードであることを思い出しました。

ここでフィドル

window.onload = function()
{
    div1 = document.getElementById("div1");

    document.addEventListener('mousedown', function(evt){mouseDown(evt, this)}, false);
    document.addEventListener('mousemove', function(evt){mouseMove(evt, this)}, false);
    document.addEventListener('mouseup', function(evt){mouseUp(evt, this)}, false);

    // div1.addEventListener('mousedown', function(evt){mouseDown(evt, this)}, false);
    // div1.addEventListener('mousemove', function(evt){mouseMove(evt, this)}, false);
    // div1.addEventListener('mouseup', function(evt){mouseUp(evt, this)}, false);
}

function mouseMove(evt, caller)
{
}

function mouseDown(evt, caller)
{
}

function mouseUp(evt, caller)
{
}
4

1 に答える 1

0

div の座標は変化しないため、ドラッグが境界外にある場合、mouseMove イベントの取得を停止します。

于 2013-03-24T19:33:06.673 に答える