将鼠标拖动到屏幕边缘时防止滚动

时间:2017-02-07 18:50:41

标签: javascript jquery

当我单击鼠标并将其移动到屏幕边缘时,页面会自动向该方向滚动(至少在Chrome上)。

例如,如果你去:Google

按住鼠标并将光标移动到屏幕底部,同时按住按钮,页面将向下滚动。

我想在自己的网站上禁用此功能,并阻止浏览器自动滚动。可以这样做吗?

起初我认为它与文本选择有关,我试过

$("body").disableSelection()

但这并不奏效。

1 个答案:

答案 0 :(得分:0)

您可以使用CSS禁用文本选择:

.noselect {
  -webkit-touch-callout: none; /* iOS Safari */
    -webkit-user-select: none; /* Safari */
     -khtml-user-select: none; /* Konqueror HTML */
       -moz-user-select: none; /* Firefox */
        -ms-user-select: none; /* Internet Explorer/Edge */
            user-select: none; /* Non-prefixed version, currently
                                  supported by Chrome and Opera */
}

但它不会阻止阻力。

您可以使用window.scrollTo(x, y);将用户滚动到一个或其他位置。您可以在滚动事件Capturing the "scroll down" event?上绑定并检查鼠标位置Javascript - Track mouse position。所以基本上你只需要禁用这种行为。

我刚试过其他一些有趣的方法 - 使用css禁用鼠标事件,使用css禁用选择,使用JS禁用鼠标事件冒泡。对你的情况没有任何帮助。尝试使用之前写过的那些策略。