15

我想在页面中隐藏一个滚动条,但我可以像它有滚动条一样滚动。所以我不能使用溢出:隐藏,因为我希望我可以像往常一样滚动但看不到滚动条。

所以我使用这个css代码(类not-scroll-body是一个body标签类)

.not-scroll-body::-webkit-scrollbar {
    display: none; 
}

它适用于 Chrome,但是当我使用-moz-而不是-webkit-这样

.not-scroll-body::-moz-scrollbar {
    display: none; 
}

它在 Firefox 中不起作用。

我该怎么做才能让它发挥作用?

感谢您的每一个回答,并为我糟糕的英语感到抱歉:)

4

7 回答 7

15

Firefox 64中,如果你想隐藏滚动,你overflow:auto现在可以做到scrollbar-width: none;!呜呜呜!以下是相关文档浏览器支持显示在页面底部)。

下面是一个简单的纯 css 解决方案,它将在 firefox 中隐藏您的垂直和水平滚动条(在 v64 和 firefox dev edition v65.0b8 中测试)。提示尝试在蓝色 div 上进行垂直和水平滚动

.not-scroll-body {
  overflow: auto;
  height: 200px;
  width: 90%;
  background: linear-gradient(to bottom, cyan, blue);
  white-space: no-wrap;

  /* the line that rules them all */
  scrollbar-width: none;
  /* */
}

span {
  width: 200%;
  height: 400%;
  background: linear-gradient(to left, green, yellow);
  display: inline-block;
  margin: 5rem;
}
<div class="not-scroll-body"><span></span></div>

于 2019-01-08T19:34:58.417 回答
9

根据这个答案以及我在网上找到的所有内容,没有与-webkit-scrollbar选择器等效的 Firefox。显然,曾经有一个属性,-moz-scrollbars-none您可以使用它,但它已被删除,人们建议使用overflow:hidden或黑客margin-right: -14px解决方案。

抱歉,我帮不上忙——似乎没有 Firefox 可以优雅地做到这一点。

于 2013-10-25T03:14:09.597 回答
5

我能够隐藏滚动条,但仍然可以使用此解决方案使用鼠标滚轮滚动:

html {overflow: -moz-scrollbars-none;}

下载插件https://github.com/brandonaaron/jquery-mousewheel并包含此功能:

jQuery('html,body').bind('mousewheel', function(event) {
    event.preventDefault();
    var scrollTop = this.scrollTop;
    this.scrollTop = (scrollTop + ((event.deltaY * event.deltaFactor) * -1));
    //console.log(event.deltaY, event.deltaFactor, event.originalEvent.deltaMode, event.originalEvent.wheelDelta);
  });
于 2014-09-18T05:10:34.530 回答
1

参见:https ://stackoverflow.com/a/41021131/4881677

我就是这样做的,只有 CSS 并且适用于像 bootstrap 这样的框架。它只需要2个额外的div:

如果您有触摸屏,您可以选择文本以使其滚动或用手指滚动。

.overflow-x-scroll-no-scrollbar {overflow:hidden;}
.overflow-x-scroll-no-scrollbar div {
  overflow-x:hidden;
  margin-bottom:-17px;
  overflow-y:hidden;
  width:100%;
}
.overflow-x-scroll-no-scrollbar div * {
  overflow-x:auto;
  width:100%;
  padding-bottom:17px;
  white-space: nowrap; 
  cursor:pointer
}

/* the following classes are only here to make the example looks nicer */
.row {width:100%}
.col-xs-4 {width:33%;float:left}
.col-xs-3 {width:25%;float:left}
.bg-gray{background-color:#DDDDDD}
.bg-orange{background-color:#FF9966}
.bg-blue{background-color:#6699FF}
.bg-orange-light{background-color:#FFAA88}
.bg-blue-light{background-color:#88AAFF}
<html><body>
  <div class="row">
    <div class="col-xs-4 bg-orange">Column 1</div>
    <div class="col-xs-3 bg-gray">Column 2</div>
    <div class="col-xs-4 bg-blue">Column 3</div>
  </div>
  <div class="row">
    <div class="col-xs-4 bg-orange-light">Content 1</div>
    <div class="col-xs-3 overflow-x-scroll-no-scrollbar">
      <div>
        <div>This content too long for the container, so it needs to be hidden but scrollable without scrollbars</div>
      </div>
    </div>
    <div class="col-xs-4 bg-blue-light">Content 3</div>
  </div>
</body></html>

懒人的简短版本:

.overflow-x-scroll-no-scrollbar {overflow:hidden;}
.overflow-x-scroll-no-scrollbar div {
  overflow-x:hidden;
  margin-bottom:-17px;
  overflow-y:hidden;
  width:100%;
}
.overflow-x-scroll-no-scrollbar div * {
  overflow-x:auto;
  width:100%;
  padding-bottom:17px;
  white-space: nowrap; 
  cursor:pointer
}

/* the following classes are only here to make the example looks nicer */
.parent-style {width:100px;background-color:#FF9966}
<div class="parent-style overflow-x-scroll-no-scrollbar">
  <div>
    <div>This content too long for the container, so it needs to be hidden but scrollable without scrollbars</div>
  </div>
</div>

于 2016-12-07T15:05:02.770 回答
0

当我自己在寻找它并且这个线程没有提供更新的答案时,我会为我自己的其他新人提供它。

#element{
 scrollbar-width: none;
}
于 2020-09-08T10:06:29.197 回答
0

您也许可以使用overflow:-moz-hidden-unscrollable - 这非常适合我的需求,部分原因是我已经在使用dragscroll.js

于 2016-08-21T03:21:24.397 回答
0

我假设您想在本地隐藏滚动条。我的意思是,不是在供全世界查看的网络服务器上,而是在您本地的 Firefox 副本上,仅用于您的“观看乐趣”。

这就是我发现在 opensuse/kde 上对我有用的东西:在 userChrome.css 中;

#content browser {
margin-right -12px !important;
overflow-x:hidden;
overflow-y:scroll;
}

使用 -14px 完全隐藏垂直滚动(如果您的系统主题具有更宽的滚动设置,则更多)。我使用 less (10px) 来查看其中的一小部分,因此我可以中键单击以跳转到页面上的某个位置。

我做过的事情,但不再总是有效:在 userContent.css

#content browser {
overflow:-moz-scrollbars-none;
}

-或者-

html {
overflow: -moz-scrollbars-none;}
}

上面曾经工作,但我现在失去了鼠标滚轮滚动。现在只有键盘箭头键有效。

希望我明白你想要什么,这会有所帮助。兰迪斯。

于 2016-05-25T09:12:09.347 回答