我通过CSS使用自定义滚动条样式在webkit中实现自定义滚动条。如果其他浏览器已经实现了前缀或未加前缀的版本/版本,请告诉我。
但是,关于我的问题。有没有办法让滚动条显示在滚动条轨道的悬停上?
有点像Mac OS X Lion和Mountain Lion?
这是我自定义滚动条的CSS“
::-webkit-scrollbar {
width: 12px;
}
/* Track */
::-webkit-scrollbar-track {
-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
-webkit-border-radius: 10px;
border-radius: 10px;
}
/* Handle */
::-webkit-scrollbar-thumb {
-webkit-border-radius: 10px;
border-radius: 10px;
background: rgba(255,0,0,0.8);
-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.5);
}
答案 0 :(得分:1)
编辑:对于当前浏览器,此答案不再有效
使用overflow-y
属性并使用body:hover
伪类显示它是一件简单的事情。我还添加了一些在悬停时隐藏的填充,这样当滚动条显示为填充时,当隐藏滚动条占用该空间时,文本不会改变位置。
小提琴:http://jsfiddle.net/J4gc9/1
CSS:
::-webkit-scrollbar {
width: 12px;
}
body{
overflow-y:hidden;
padding-right:12px;
}
body:hover{
overflow-y:scroll;
padding-right:0px;
}
/* Track */
::-webkit-scrollbar-track {
-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
-webkit-border-radius: 10px;
border-radius: 10px;
}
/* Handle */
::-webkit-scrollbar-thumb {
-webkit-border-radius: 10px;
border-radius: 10px;
background: rgba(255,0,0,0.8);
-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.5);
}
答案 1 :(得分:1)
这是一个jquery解决方案,因为你提到它需要它显示你何时悬停在它上面。 请检查此fiddle
var bodywidth = $('body').width();
var scrollwidth = 10;
$('body').mousemove(function(e){
var x = e.pageX - this.offsetLeft;
if(x>bodywidth-scrollwidth)
$('body').addClass("auto");
else
$('body').removeClass("auto");
});
body
{
margin:0;
overflow:hidden;
}
.auto
{
overflow:auto;
}