【问题标题】:Prevent scrolling when mouse is dragged to edge of screen将鼠标拖动到屏幕边缘时防止滚动
【发布时间】:2017-02-07 18:50:41
【问题描述】:

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

例如,如果你去:Google

按住鼠标不放,将光标移至屏幕底部,页面将向下滚动。

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

一开始我以为是文本选择的问题,我试了一下

$("body").disableSelection()

但这不起作用。

【问题讨论】:

    标签: javascript jquery


    【解决方案1】:

    您可以使用 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 禁用鼠标事件冒泡。对您的情况没有任何帮助。尝试使用之前写的那些策略。

    【讨论】:

    • window.scrollTo 只会让事情变得更糟,因为现在它正试图同时上下移动,使页面“摇晃”。恐怕这行不通..
    猜你喜欢
    • 2017-10-28
    • 2013-05-22
    • 1970-01-01
    • 2021-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多