我正在尝试找出如何创建一个滚动的 div,只有在鼠标悬停时才显示其滚动条。
谷歌图片搜索是一个例子,在下面的图片中,你可以看到左侧边栏似乎不能滚动,直到你将鼠标悬停在它上面。
这个功能可以用 CSS 实现吗?还是需要 JavaScript?如果可能,能否提供一个快速示例来完成这样的任务?
我正在尝试找出如何创建一个滚动的 div,只有在鼠标悬停时才显示其滚动条。
谷歌图片搜索是一个例子,在下面的图片中,你可以看到左侧边栏似乎不能滚动,直到你将鼠标悬停在它上面。
这个功能可以用 CSS 实现吗?还是需要 JavaScript?如果可能,能否提供一个快速示例来完成这样的任务?
.overflow-auto {
overflow: auto;
// scrollbar firefox
scrollbar-color: transparent transparent;
// scrollbar chrome/edge
&::-webkit-scrollbar-track,
&::-webkit-scrollbar-thumb {
visibility: hidden;
}
&:hover {
// scrollbar firefox
scrollbar-color: initial;
// scrollbar chrome/edge
&::-webkit-scrollbar-track,
&::-webkit-scrollbar-thumb {
visibility: visible;
}
}
}
<div class="overflow-auto">...</div>
overflow:hidden;
带来的问题。.minimal-scrollbars{
scrollbar-width: thin;
scrollbar-color: #aaa transparent;
-ms-overflow-style: -ms-autohiding-scrollbar;
}
.minimal-scrollbars::-webkit-scrollbar-track {
background-color: transparent;
}
.minimal-scrollbars::-webkit-scrollbar{
width: .3em;
}
@media(hover:hover){
.minimal-scrollbars{
scrollbar-color: transparent transparent;
}
.minimal-scrollbars:hover{
scrollbar-color: #aaa transparent;
}
.minimal-scrollbars::-webkit-scrollbar-thumb {
background-color: transparent;
}
.minimal-scrollbars:hover::-webkit-scrollbar-thumb {
background-color: #aaa;
}
}
这个会起作用:
#div{
max-height:300px;
overflow:hidden;
}
#div:hover{
overflow-y:scroll;
}
div {
height: 100px;
width: 50%;
margin: 0 auto;
overflow-y: scroll;
}
div:hover > ::-webkit-scrollbar-thumb {
visibility : visible;
}
::-webkit-scrollbar {
width: 0.5rem;
}
::-webkit-scrollbar-track {
margin-left: 1rem;
}
::-webkit-scrollbar-thumb {
background: var(--dimGrayColor);
border-radius: 1rem;
visibility: hidden;
transition: 0.3s all linear;
}
$("#leftDiv").hover(function(){$(this).css("overflow","scroll");},function(){$(this).css("overflow","hidden");});
然而,如果您使用width=100%,则可能会修改设计中的某些元素,因为当您隐藏滚动条时,它会为您的宽度创建更多的空间。
这将有助于您解决overflow: overlay
问题。
.div{
height: 300px;
overflow: auto;
visibility: hidden;
}
.div-content,
.div:hover {
visibility: visible;
}