jquery - 在滚动条上显示滚动条,否则隐藏它,保持其 z-index 高于一切

标签 jquery css

描述

如果用户没有在页面上滚动,我想隐藏滚动条。一旦他开始在页面上滚动,滚动条就会变得可见。

这段代码让我可以在滚动开始时做任何事情

$("#element").on("scroll",function(){});

让我在 div 中添加一个类

-webkit-scrollbar
{
    width: 0px !important;
}

这个 css 确实隐藏了障碍。

问题

当用户滚动时,该栏会显示出来,但它会在滚动的 div 中占用一点空间,这也会干扰其他 div 的放置。

我想要什么

我想要的是在滚动时显示滚动条,但以某种方式更改其 z-index,以便在显示时不会占用 div 中的空间....

到目前为止我做了什么

我已经设置了滚动条的样式 当用户滚动时处理它的显示/隐藏切换,剩下的就是我在上面讨论过的问题......有人熟悉吗??

最佳答案

Chrome 你说... :)

jsBin demo

我发现唯一真正容易做到的方法是使用滚动条出现的预定义空间。现在,在不弄乱填充、位置、包装器等的情况下,最简单的解决方案是:

使滚动条透明!

因此默认情况下添加一个“透明”滚动条元素的类:

<div id="element" class="hideScroll"></div>

CSS:

.hideScroll::-webkit-scrollbar{
  background:transparent;
}
.hideScroll::-webkit-scrollbar-thumb {
  background: transparent;
}

在滚动时删除该类(以应用默认样式)!

var scrollTimeout;
$(".hideScroll").on("scroll",function(){
  clearTimeout(scrollTimeout);
  var $that = $(this);

  $that.removeClass('hideScroll');
  scrollTimeout = setTimeout(function(){
     $that.addClass('hideScroll');
  },220);
});

并在所需的超时后重新添加它。

关于jquery - 在滚动条上显示滚动条,否则隐藏它,保持其 z-index 高于一切,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25838713/

相关文章:

jquery - 为什么类样式未应用于按钮

jQuery 工具提示仅适用于表格的第一行

javascript - 我的两个 CSS 动画同时发生。如何让它只在另一个完全完成后才发生?

html - 为什么将图像的宽度设置为由 css flexbox 排序的 div 内的百分比会增加额外的高度到 div?

css - 将自定义文本类添加到 Twitter Bootstrap 时保持响应能力

javascript - 关注页面加载时滚动的元素

javascript - 将对象名称和描述定义为函数调用中的变量?

jquery - 我如何使用 jQuery 来确定 div 何时超出右侧的视野?

css - 第 N 个子列表显示错误

html - 如何将文本居中放置在图像上,同时将其保持在 css 中的固定导航栏下方?