隐藏滚动条,但仍然可以滚动
我希望能够浏览整个页面,但没有显示滚动条。
在Google Chrome中,它是:
::-webkit-scrollbar {
display: none;
}
但Mozilla Firefox和Internet Explorer似乎并不像那样工作。
我也尝试过在CSS中:
overflow: hidden;
这确实隐藏了滚动条,但我不能滚动了。
有什么办法可以删除滚动条,仍然可以滚动整个页面? 请仅使用CSS或HTML。
只是一个工作正常的测试。
#parent{
height: 100%;
width: 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 */
}
工作小提琴
JavaScript的:
由于滚动条宽度在不同的浏览器中有所不同,所以最好用JavaScript处理它。 如果您执行Element.offsetWidth - Element.clientWidth
,将显示确切的滚动条宽度。
JavaScript工作小提琴
要么
使用Position: absolute
,
#parent{
height: 100%;
width: 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;
}
工作小提琴
JavaScript工作小提琴
信息:
基于这个答案,我创建了一个简单的滚动插件。 我希望这会帮助某人。
易于使用Webkit,可选样式:
html {
overflow: scroll;
overflow-x: hidden;
}
::-webkit-scrollbar {
width: 0px; /* remove scrollbar space */
background: transparent; /* optional: just make scrollbar invisible */
}
/* optional: show position indicator in red */
::-webkit-scrollbar-thumb {
background: #FF0000;
}
这适用于我:
.container {
-ms-overflow-style: none; // IE 10+
overflow: -moz-scrollbars-none; // Firefox
}
.container::-webkit-scrollbar {
display: none; // Safari and Chrome
}
注意:在最新版本的Firefox中, -moz-scrollbars-none
属性已被弃用(链接)。