一开始的需求是横向竖向都隐藏但能滚动,有两种方法:
在滚动区域外面加一层div,设置overflow:hidden;或者设置scrollbar的display属性。
// 方法一,设置父级元素overflow:hidden
<div class="outer">
<div class="inner"></div>
</div>
...
<style>
.outer {
overflow: hidden;
}
.inner {
overflow: auto;
}
</style>
// 方法二,设置scrollbar的display属性
<style>
.inner::-webkit-scrollbar {
display: none;
}
</style>
但为了提示用户页面内可以横向滚动,要把横向滚动条展示出来。
这时上面两个方法都会失效:
display:none会把横向和竖向滚动条都隐藏;
而overflow-x:auto;overflow-y:hidden虽然能满足横向显示、竖向不显示,但会使得竖向无法滚动。
最终解决方法是设置scrollbar的width为0。因此,类似地,如果要显示竖向、隐藏横向,设置height:0就可以。
<div>
<div class="inner"></div>
</div>
...
<style>
.inner {
overflow: auto;
}
.inner::-webkit-scrollbar {
width: 0 !important;
}
</style>