我目前正在使用Webkit的 ::-webkit-scrollbar CSS 属性美化滚动条,并希望在鼠标移动事件中更改这些属性。问题是我似乎找不到一种动态获取滚动条CSS的方法。
是否可以通过JavaScript(可能使用jQuery)动态地样式化Webkit滚动条?
我目前正在使用Webkit的 ::-webkit-scrollbar CSS 属性美化滚动条,并希望在鼠标移动事件中更改这些属性。问题是我似乎找不到一种动态获取滚动条CSS的方法。
是否可以通过JavaScript(可能使用jQuery)动态地样式化Webkit滚动条?
有一个很好的解决方法,您可以添加具有不同样式的多个 CSS 类来处理滚动条问题,然后使用 JavaScript 动态更改这些类。
示例:
.red::-webkit-scrollbar { ... }
.blue::-webkit-scrollbar { ... }
一个可以在 red
和 blue
之间切换的按钮:
$("#changecss").on("click", function(){
$(".red,.blue").toggleClass("red").toggleClass("blue");
});
这是一个可用的代码示例:http://jsfiddle.net/promatik/wZwJz/18/
overflow
的值并获取页面的高度来解决。document.body.style.overflow = 'hidden';
document.body.offsetHeight;
document.body.style.overflow = 'auto';
- Aleksey Pastuhov我创建了一个带有四个选项卡的页面,每个选项卡都有不同的颜色设置,以及滚动条。然而,这只能通过给body标签添加类来实现。
body.greenbody::-webkit-scrollbar {
width: 10px;
}
body.greenbody::-webkit-scrollbar-track {
background-color:rgb(0,50,0);
}
body.greenbody::-webkit-scrollbar-thumb {
background-image:url("../assets/ScrollGreen.png");
}
/
body.bluebody::-webkit-scrollbar {
width: 10px;
}
body.bluebody::-webkit-scrollbar-track {
background-color:rgb(0,0,50);
}
body.bluebody::-webkit-scrollbar-thumb {
background-image:url("../assets/ScrollBlue.png");
}
html
<body id="body" class="greenbody" bgcolor="#202020">
JavaScript用于每个选项卡按钮(这里只显示滚动条部分)
document.getElementById("body").className="greenody";
.........other function()....
document.getElementById("body").className="bluebody";
function overFlow(el) {
el.style.cssText = "overflow: auto;";
}
在HTML中使用:
<style>
::-webkit-scrollbar{display = none;}
</style>
<div id="overFlow" onclick="overFlow(this);">Something</div>
你可以使用CSS3来样式化滚动条,这通常只适用于内部滚动条而不是实际的浏览器主滚动条。你也可以在以下内容中添加MOZ属性。
::-webkit-scrollbar {
width: 10px;
height: 10px;
}
::-webkit-scrollbar-button:start:decrement,
::-webkit-scrollbar-button:end:increment {
display: none;
}
::-webkit-scrollbar-track-piece {
background-color: #3b3b3b;
-webkit-border-radius: 6px;
}
::-webkit-scrollbar-thumb:vertical {
-webkit-border-radius: 6px;
background: #666 url(scrollbar_thumb_bg.png) no-repeat center;
}
因此,您应该彻底更换滚动条。
只是选择最容易使用 API 的那个而已。
scrollbar-width: 0
应用于 body 或 HTML 标签(我发现我必须在 HTML 标签上执行此操作)。这可以使用JS轻松完成,通过为body或HTML元素添加内联样式的 .style 属性即可。 - Lushawn