1

我想避免以下场景的单击和拖动功能。

我有两个 DIV

  1. 包装器

    { 宽度:400 像素;高度:400px;溢出-x:隐藏;}

  2. 内容 div

    { 宽度:1 200 像素;高度:400px;/* 注释宽度是包装器 div 的 3 倍 */ }

内容 div 是包装 div 的子级。包装器 div 仅用作查看端口,我在其中显示内容 div。

当用户单击按钮时,我设置滚动位置以在包装器中显示内容 div 的适当部分。(0-400、401-800、801-1200)但是如果用户单击并拖动鼠标指针,那么包装器 div 会滚动(因为拖动)。我想避免在点击和拖动时滚动。

我尝试了以下事情:

var isMouseDown = false;
function onmousedown(event) {
    isMouseDown = true;
}

function onmouseup(event) {
    isMouseDown = false;
}

function onmousemove(event) {
    if (isMouseDown) {
        event.stopPropagation();
        event.preventDefault();
        event.cancelBubble = true;
        event.returnValue = false;
        return false;
    }
}

上面的代码对我没有帮助。

任何帮助表示赞赏。

提前致谢。

4

1 回答 1

0

我检查包装器 div 何时滚动。

我添加了事件“onscroll”,并在单击按钮时将一个全局变量“shouldScroll”设置为 true,并在 div 滚动到所需位置时将其设置为 false。

当用户单击并拖动鼠标时,包装器 div 滚动事件被触发,但我检查“shouldScroll”是否为真,然后只允许滚动,否则滚动到当前位置。

单击按钮时,我将当前滚动位置设置在一个全局变量中。

于 2013-10-03T03:51:36.137 回答