使用JavaScript禁用水平滚动

时间:2011-09-21 16:09:35

标签: javascript jquery html css

有没有人知道是否有办法使用JavaScript禁用水平滚动条?

我不想使用overflow-x: hidden;

3 个答案:

答案 0 :(得分:9)

如果不使用完全可行的overflow-x CSS属性,您可以通过javascript或HTML / CSS设计将内容大小调整为不需要滚动条。

你也可以这样做:

window.onscroll = function () {
 window.scrollTo(0,0);
}

...将检测任何滚动并自动将滚动返回到顶部/左侧。值得一提的是,做这样的事情肯定会让用户感到沮丧。

通过创建一个根本不存在不需要的UI元素的环境(通过CSS,通过设计),您可以获得最佳服务。上面提到的方法显示了不必要的UI元素(滚动条),然后导致它们无法以用户期望的方式工作(滚动页面)。您已与用户“签订合同” - 当用户做出熟悉的操作时,他们如何相信您的网站或应用程序的其余部分会做出预期的事情?

答案 1 :(得分:2)

防止元素在jQuery中向下滚动的方法:

$(element).scroll(function () {
    this.scrollTop = 0;
    this.scrollLeft = 0;
});

嗯,这实际上并没有阻止滚动,但它“向后滚动”到元素的左上角,类似于为窗口而不是单个元素创建的Chris'解决方案。删除scrollTopscrollLeft行以满足您的需求。

答案 2 :(得分:0)

一个肮脏的技巧将重叠滚动条:http://jsfiddle.net/dJqgf/

var overlap = $('<div id=b>');

$("#a").wrap($('<div>'));

$("#a").parent().append(overlap);

使用:

#a {
    width: 100px;
    height: 200px;
    overflow-x: scroll;
}

#b {
    position: relative;
    left: 0;
    bottom: 20px;
    width: 100%;
    height: 20px;
    background-color: white;
}