【问题标题】:Is it possible to prevent just horizontal scrolling when overflow-x is hidden?隐藏溢出x时是否可以仅防止水平滚动?
【发布时间】:2010-04-15 19:58:04
【问题描述】:

我有一个网页,其内容超出了浏览器窗口的右边缘。我在<body> 上设置了overflow-x: hidden 以关闭底部滚动条,但我仍然可以使用触控板水平滚动,这不是我想要的。

有什么办法可以防止浏览器水平滚动?

附带说明:Safari 4.0.4 有时只水平滚动,滚动感觉“粘滞”和“跳跃”,而 Firefox 总是平滑水平滚动。

【问题讨论】:

    标签: javascript css overflow hidden


    【解决方案1】:

    你可以尝试在 CSS 中设置:

    html{
      overflow-x: hidden;
    }
    

    而不是使用body 选择器。 我试过了,并且在 Firefox 中工作。

    【讨论】:

    • 我也在 FF 中试过这个,它似乎有完全相同的问题。正如@Chaulky 所指出的,更好的解决方案是简单地将显示设置为“无”。如果您希望它出现,请执行一些 js / jquery 再次将其移入。
    【解决方案2】:

    我认为真正的问题是,为什么您的内容会超出页面的预期大小?这些内容是您不希望用户实际看到的吗?在这种情况下,将其放在某个 div 中并将其显示设置为无。这将完全避免溢出问题。

    如果有正当理由希望它溢出容器,则显式设置容器的大小,然后将 overflow-x 设置为隐藏。我尚未对其进行测试,但这应该可以防止当前的行为。如果没有,请尝试使用 div,而不是 body 标签。浏览器的行为可能很奇怪,因为它正在处理 body 标签本身。

    【讨论】:

      【解决方案3】:

      我会进入 Chrome 并在桌面上打开开发者工具。删除溢出-x 属性。然后继续删除页面上的每个父元素。当您看到水平滚动条消失时,您就知道您找到了问题所在。然后潜入那个元素。我敢打赌,您的宽度为 100%,并且在其上设置了边距。如果是这种情况,请删除边距。

      【讨论】:

        【解决方案4】:

        如果所有其他方法都失败了,您可以使用 Javascript 不断强制浏览器使用 window.scrollTo(xpos, ypos) 向左滚动。对于 xpos,您需要使用 0 和 ypos,假设您要允许垂直滚动,您需要获取用户的当前滚动位置。

        您可以将函数调用放在 window.onscroll 事件处理程序中,或者放在每 100 毫秒左右运行一次的 javascript 间隔中。由你决定。如果您需要代码示例,请询问。

        【讨论】:

        • 为了防止滚动,可以使用overflow: hiddenwindow.onscrollwindow.scrollTo的组合来隐藏滚动条,并将用户引导到0,0(左上角)屏幕的)滚动,有效地将网页保持在其当前位置(或 ypos 作为用户的当前滚动位置以保持垂直滚动,如@InvisibleBacon 建议的那样)
        【解决方案5】:

        如果你有一个例子会更好理解。

        这是一个长网址还是没有空格的东西?你在元素上设置了white-space:nowrap; 吗?

        如果您有一个定义大小的容器(适合视口的容器),则文本应正确粘贴,(除非它是没有空格的长行)

        【讨论】:

          【解决方案6】:

          旧讨论,但它可能对寻找正确答案的人有用!

          在比浏览器窗口更宽的元素的父 div 上设置“overflow:hidden”(不是通常的 html 或 body),这将停止使用 de pad 或箭头垫滚动...

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2013-01-15
            • 2014-05-10
            • 1970-01-01
            • 2021-02-12
            • 2011-06-03
            • 1970-01-01
            • 2011-01-28
            • 2021-06-30
            相关资源
            最近更新 更多