我希望制作自己的滚动条,但在此之前,我需要隐藏默认的滚动条,同时允许滚动。
我已经尝试过:
overflow-y:hidden;
但是你隐藏了滚动条并禁用了滚动。
我知道这里还有其他人问过这个问题,但我不想只添加填充来隐藏它。我想完全隐藏它的方法。
我希望制作自己的滚动条,但在此之前,我需要隐藏默认的滚动条,同时允许滚动。
我已经尝试过:
overflow-y:hidden;
但是你隐藏了滚动条并禁用了滚动。
我知道这里还有其他人问过这个问题,但我不想只添加填充来隐藏它。我想完全隐藏它的方法。
你不必允许手动滚动,可以通过编程实现滚动。只需获取自定义滚动条的位置并相应地滚动内容即可...
这里是一个带有按钮的简短示例:
document.getElementById("right").addEventListener("mousemove",function(){
document.getElementById("outer").scrollLeft+=10;
});
document.getElementById("left").addEventListener("mousemove",function(){
document.getElementById("outer").scrollLeft-=10;
});
#outer {
float:left;
border:2px solid red;
height:100px;
width:200px;
display:inline-block;
overflow-x:hidden;
}
#inner {
display:block;
height:100%;
white-space:nowrap;
}
#left {
float:left;
border:2px solid red;
height:100px;
width:50px;
display:inline-block;
background:lime;
line-height:100px;
}
#right {
float:left;
border:2px solid red;
height:100px;
width:50px;
display:inline-block;
background:lime;
line-height:100px;
}
<div id="left"><--</div>
<div id="outer">
<div id="inner">sdk hfkhsdbf khsdbf kbsdf kbsdkjf sdkjbg lsdkbg;kSBGKdbs gksbd gksdb g</div>
</div>
<div id="right">--></div>
.scroll()
方法来检测。您需要一个全局变量来保存滚动位置,并且每次滚动页面时都要检查位置是否比先前的值更大或更小,这样您就会知道滚动方向。 - Banana您可以使用以下属性在Firefox中隐藏滚动条但允许滚动:
scrollbar-width: none;
::-webkit-scrollbar {
height: 0px !important;
width: 0px !important;
display: none !important;
}
同时请参阅 webkit.org 上的 开发者文档。
最佳方法是使用jQuery插件。
最具自定义性和灵活性的插件是jScrollPane,它适用于垂直和水平滚动,并允许您通过对句柄、轨道、包装器等元素应用样式来轻松地进行CSS样式设计。请注意,滚动条需要进行样式设计,因为默认情况下它们非常丑陋。
如果您想要更漂亮的东西,请尝试perfect-scrollbar,它可以很好地模拟滚动条的行为,看起来像Mac OS X上的那些(美观而薄,只有在需要时才可见)。
我还使用过jQuery-slimScroll,它也做得很好。轻巧易用,外观漂亮,易于样式设计,但不如第一个插件自定义化程度高。
理论上也可以仅使用CSS隐藏滚动条,但这是非常hacky且用户体验很差的方法。我肯定会选择使用jQuery插件解决方案,因为它们将自行处理默认滚动条。