我不能拖动文档窗口之外的元素,但不能在简单的div之外。为什么?

时间:2013-03-24 19:21:21

标签: javascript addeventlistener mousemove

我试图通过捕获鼠标坐标并相应地移动东西来拖出文档。目前我使用document.addEventListener,即使我在窗口外拖东西也能很好地工作。功能正在增加,为了跟上复杂性,我宁愿使用div和div1.addEventListener。

但是这个改变并没有让我把东西拖到我的div之外,更不用说在窗外了。我正在谈论只拖动(鼠标在div内部,然后将鼠标拖出它)。一旦我在div之外,它就会刹车。

我不知道发生了什么,我很久以前就对它进行了实验,我记得这是工作代码。

fiddle here

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)
{
}

1 个答案:

答案 0 :(得分:0)

由于div的坐标没有变化,当拖动超出其边界时,它会停止获取mouseMove事件。