6

我不希望我的网页滚动。我有一个<body>100% 的宽度,我将其设置overflowhidden,它通常可以工作。没有滚动条,没有鼠标滚轮/触摸板手势滚动。但是,如果我在任何地方单击并拖动,我仍然可以滚动。

臭味在于我有一个绝对定位的 div,所以它粘在其父级之外,部分(有时完全)在屏幕外。由于一些原因,我现在无法解决这个问题。

这个小提琴说明了我的问题(我在 webkit 中看到它),http://jsfiddle.net/ax5x7/2/

在 HTML 中向右拖动几乎任何地方都会导致页面滑动。因为没有滚动条,所以返回很棘手,所以如果你错误地这样做,它看起来很糟糕。

在这里闲逛发现了一个与 jQuery's deprecated 相关的建议disableSelection(),但除非我做错了(我将它应用于身体以及所有孩子),否则它似乎并没有阻止这种行为。我还发现了一个几年前的问题,似乎没有令人满意的解决方案。创可贴有点笨拙,我宁愿不要每隔一段时间滚动到 (0,0)。

4

5 回答 5

9

这将起作用,并且不会禁用文本选择:

$(document).on('scroll', function() {
  $(document).scrollLeft(0);
});

$(document).scrollTop(0);如果要禁用向下滚动,可以添加。

这是一个jsFiddle

于 2013-05-28T04:00:31.697 回答
1

你可以试试这个,它会破坏文本的选择:

$('html, body').on("mousedown", null, function(event) {
    return false;
});

http://jsfiddle.net/samliew/ThCJf/

于 2013-05-28T03:46:52.870 回答
1

对于让我在 Chrome 上不寒而栗的纯 JS 实现,至少:

function preventScroll(){
    var element = document.getElementById('my-element-id');
    element.onscroll = function(){
      element.scrollLeft = 0;
    };
}
于 2015-10-13T16:15:04.943 回答
0

如果我正确理解了您的问题,那么应该这样做。

http://jsfiddle.net/ax5x7/3/

请随时告诉我有关该问题的更多信息,我会相应地更新。

body我删除了标签上的填充/边距。

更新了biggestThing

看起来像这样:

#biggestThing {
    box-sizing: border-box;
    border: 1px solid black;
    width: 100%;
    background-color: #eee;
    height: 5em;
}
于 2013-05-28T03:29:11.527 回答
0

尝试添加overflow:hidden;page_wrapper 的 css。

于 2014-05-30T10:02:28.753 回答