自定义 webkit 滚动条位置

Rob*_*uyt 5 scrollbar

我有一个像这样的自定义 webkit 滚动条:

::-webkit-scrollbar{
  background: transparent;
  width: 10px;
}
::-webkit-scrollbar-thumb{
  background: #999 !important;
}
Run Code Online (Sandbox Code Playgroud)

所以它呈现一个灰色的自定义滚动条而不是标准滚动条。但是,它被卡在页面的右侧。我知道我可以通过在我的身体上添加边距、填充或边框来改变这一点,但我使用的是全屏(背景)图像。因此,当我尝试此操作时,所有图像也受此影响,这是我不想要的。所以我试图定位滚动条,但这不起作用(因为它不是一个元素,而是一个用户代理属性......

所以我正在寻找一种方法(不使用其他插件)来自定义工具栏,使其从侧面偏移。

或者,如果可能的话,我可以在 div 中设置滚动条偏移量。

其次,我正在寻找一种方法来制作滚动条透明的“轨道”。所以只有一个把手。

提前致谢!

use*_*787 5

我最近发现的聪明解决方案是将边框放在包含滚动条的屏幕/div 的右侧:

<div class="yourdiv">
border-right: 5px solid #(background_color);
</div>
Run Code Online (Sandbox Code Playgroud)


小智 1

控制自定义滚动条位置的一种简单方法是使用明确的定位来设置滚动元素(主体?)。您还需要将 html 设置为 Overflow:auto;

要使拇指透明,请使用 RGBa 值来声明颜色。在本例中,我使用了 0,0,0,0.4(红色,绿色,蓝色,alpha)。并非所有浏览器都支持 RGBa,Chris Coyier 在此提供了一个支持 RGBa 的详细表格: http: //css-tricks.com/rgba-browser-support/

如果您想显示的只是拇指,还可以考虑隐藏滚动条的其他元素:resizer、scrollbar-button和scrollbar-corner。

html {
    overflow: auto;
}
body {
    position: absolute;
    top: 20px;
    left: 20px;
    bottom: 5px;
    right: 20px;
    overflow: scroll;
}
::-webkit-scrollbar{
    background: transparent;
    width: 10px;
}
::-webkit-scrollbar-thumb{
    background: rgba(0,0,0,0.4); /*-- black at 40% opacity --*/
}
::-webkit-resizer,
::-webkit-scrollbar-button,
::-webkit-scrollbar-corner { display: none; }
Run Code Online (Sandbox Code Playgroud)

查看工作演示:http://jsfiddle.net/Buttonpresser/G53JQ/