2013-04-03 63 views
0

我想在按下按钮时禁用滚动。我已经找到了this answer,它非常好 - 但用户仍然可以通过在页面上标记某些内容并将其拖动到浏览器的顶部/底部来进行滚动。通过拖动禁用滚动

此代码重置尽可能快的滚动位置,但滚动仍是可见的(这解决方案似乎有点脏)

var pageYOffset = window.pageYOffset; 
setInterval(function() { window.scrollTo(0, pageYOffset) }, 1); 

回答

1

您可以通过滚动disabling text selection highlighting处于禁用状态时尝试。

试试这个fiddle

在disable_scroll()添加

$("html").addClass("diableSelection"); 

和enable_scroll()添加

$("html").removeClass("diableSelection"); 

其中.diableSelection将

.diableSelection { 
-webkit-touch-callout: none; 
-webkit-user-select: none; 
-khtml-user-select: none; 
-moz-user-select: none; 
-ms-user-select: none; 
user-select: none; 
} 
+0

谢谢!不幸的是,我的问题似乎超过了简化:我的网站上有一个元素必须是可拖动的:/但那是我的错,无论如何你回答了我的问题 – Christopher

+0

也许它是小提琴,但它不起作用:页面卷轴向上/向下拖动我的鼠标在其区域外... – mike