html - 隐藏滚动条,但仍然可以滚动

标签 html css google-chrome internet-explorer firefox

我希望能够滚动整个页面,但不显示滚动条。

在谷歌浏览器中它是:

::-webkit-scrollbar {
    display: none;
}

但是 Mozilla Firefox 和 Internet Explorer 似乎不是那样工作的。

我也在 CSS 中尝试过这个:

overflow: hidden;

确实隐藏了滚动条,但我不能再滚动了。

有没有一种方法可以删除滚动条,同时仍然能够滚动整个页面?

请使用 CSS 或 HTML。

最佳答案

只是一个运行正常的测试。

#parent{
    width: 100%;
    height: 100%;
    overflow: hidden;
}

#child{
    width: 100%;
    height: 100%;
    overflow-y: scroll;
    padding-right: 17px; /* Increase/decrease this value for cross-browser compatibility */
    box-sizing: content-box; /* So the width will be 100% + 17px */
}

Working Fiddle

JavaScript:

由于不同浏览器的滚动条宽度不同,最好用JavaScript来处理。如果您执行 Element.offsetWidth - Element.clientWidth,则会显示确切的滚动条宽度。

JavaScript Working Fiddle

或者

使用 Position: absolute,

#parent{
    width: 100%;
    height: 100%;
    overflow: hidden;
    position: relative;
}

#child{
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: -17px; /* Increase/Decrease this value for cross-browser compatibility */
    overflow-y: scroll;
}

Working Fiddle

JavaScript Working Fiddle

信息:

基于这个答案,我创建了一个 simple scroll plugin .

关于html - 隐藏滚动条,但仍然可以滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50654711/

相关文章:

html - 是否可以在单个 anchor 标记中使链接具有不同的颜色

html - favicon 不会显示在 chrome 中,但会显示在其他浏览器中,如 IE、Firefox

html - 如何在 HTML 选择中将文本垂直对齐到中间?

javascript - 如何消除 chrome 上的抖动

css - 打印中断引导布局

html - 在 3 列页面中,当滚动条出现时固定第三列

javascript - 为动态生成的 div 添加样式

javascript - 过渡导致具有不透明度的元素消失

JavaScript visibilitchange 事件不会在移动 Chrome 上触发

html - 带有粘性页脚的 3 列 css 布局 - 列 100% 高度?