拖动HTML时阻止AutoScroll

时间:2013-03-15 14:48:39

标签: javascript css scroll raphael drag

我正在使用raphael在屏幕上绘制项目。我有一个包含在divoverflow: scroll中的绘图对象的容器。在所有broswers 除了 IE 7/8用户绘图时,它不会滚动。但是,在IE 7/8中,当用户拖动(即绘制一条线)时,它会在用户接近边缘时自动滚动。我已经找到了一些jQuery的帮助,并试图覆盖div的onscroll事件,但这不起作用。

我没有使用jQuery而无法添加它。

1 个答案:

答案 0 :(得分:2)

有时滚动是由于在窗口中“选择”文本引起的(在此SO页面上从上到下单击并拖动以查看我的意思)。如果在没有看到jsFiddle示例或示例代码的情况下出现问题,我无法从您的说明中看出,但您可能会尝试禁用选择。

正如您所说,jQuery不适合您。如果是,您只需使用disableSelection()

对于vanilla Javascript解决方案,请尝试:

function disableSelection(target) {
    if (typeof target.onselectstart != "undefined") { //IE
        target.onselectstart = function () {
            return false;
        };
    } else if (typeof target.style.MozUserSelect != "undefined") { //Firefox 
        target.style.MozUserSelect = "none";
    } else { //All other ie: Opera
        target.onmousedown = function () {
            return false;
        };
    }
    target.style.cursor = "default";
}

window.onload = function () {
    disableSelection(document.body);
};

来源(为清晰起见略作修改):Disable selection on browser using Javascript