【问题标题】:body: overflow-x - still able to scroll over with trackpad正文:overflow-x - 仍然可以使用触控板滚动
【发布时间】:2017-09-05 22:31:59
【问题描述】:

我有一个设置了position: absolute 的 div,它比我的浏览器窗口宽一点。我已经成功隐藏了水平滚动条,但我仍然可以使用 Macbook 触控板进行滚动。

有什么办法可以避免吗?

<div id="container">
    <div id="big-image"></div>
</div><!-- #container -->

#container {
    overflow-x: hidden;
}

#big-image {
    background: transparent url('/path/to/image.png') no-repeat center top;
    position: absolute;
    width: 1307px;
    left: 50%;
    margin: 0 0 0 -653.5px;
    z-index: 4;
}

【问题讨论】:

    标签: css overflow css-position trackpad


    【解决方案1】:

    如果您不限制#container 的高度,只需将overflow 设置为hidden,因为overflow-x 很奇怪,它会移除滚动条,但仍然允许您滚动。

    示例

    body {
        overflow-x: hidden;
    }
    
    #container {
        overflow: hidden;
        width: 100%;
    }
    

    【讨论】:

    • 这可行,但是当窗口足够小到 内容区域 导致水平滚动条出现的位置时,会出现一个小问题。也就是说,您可以滚动过去,但我使用的图像被切断了,图像应该去的地方只是白色的。不过,谢谢!目前,我已经使用 JS 解决了这个问题,但可以使用纯 CSS 来完成吗?
    • 我不确定内容区域指的是什么:S 也许也将其溢出属性设置为隐藏?
    • 我才意识到我从来没有回答过你的问题。我不记得当时我在做什么,但我想我可以解释一下。从技术上讲,我从来没有完全弄清楚这一点,我仍然有我的 JS 解决方法,哈哈。
    • 这解决了我的问题,谢谢!我需要在 html 元素和 body 元素上都放置 overflow-x:hidden,以阻止允许侧滚动。
    【解决方案2】:

    您可以在#big-image 上使用position: fixed;

    【讨论】:

    • 用户仍然需要滚动向下,即使滚动后position: fixed 也会保持 div 位于顶部。不过还是谢谢。
    • 当我不知道您的要求时很难帮助您。
    • 抱歉,我很感谢您愿意提供帮助! :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-14
    • 2013-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-14
    • 2022-01-05
    相关资源
    最近更新 更多