2

我正在使用 raphael 在屏幕上绘制项目。我有包含在 adiv和中的绘图对象的容器overflow: scroll。在IE 7/8 之外的所有浏览器中,当用户绘制它时,它不会滚动。但是,在 IE 7/8 中,当用户拖动(即绘制一条线)时,它会在用户靠近边缘时自动滚动。我找到了一些关于 jQuery 的帮助,并尝试覆盖onscrolldiv 的事件,但没有奏效。

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

4

1 回答 1

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

来源(为清楚起见稍作修改):使用 Javascript 在浏览器上禁用选择

于 2013-03-15T14:57:17.947 回答