如何阻止滚动直到加载程序显示 none?

How can I block scrolling until the loader displays none?

我想知道是否有办法阻止滚动条,直到 div 及其加载器到达显示点 none。我不知道这是否可以仅使用 html 或 css 来完成。有什么建议吗?

 #loader {
    background: #eeeeee;
    bottom: 0;
    height: 100%;
    left: 0;
    right: 0;
    top: 0;
    width: 100%;
    display:block;
    margin: 0 auto;
    position: relative;
    overflow: hidden;
    z-index: 9999;
}
#loaderInner {
    background:#eeeeee url(https://dl.dropboxusercontent.com/s/asdfghfdsas/loader.gif) center center no-repeat;
    background-size: 250px 250px;
    position: absolute;
    height: 250px;
    width: 250px;
    display:block;
    margin: 0 auto;
    top: 50%;
    left: 50%;
    margin: -125px 0px 0px -125px;
}
body#layout #loader {
    display:none;
    overflow: scroll;
}

您可以使用一些简单的 CSS 来防止页面滚动。但是您需要使用 JS 来处理何时应用此 class.

CSS

body.loading {
    overflow: hidden;
}

另一种解决方案是将加载器 div 放置在固定位置,因此无需隐藏滚动条(这会导致奇怪的用户体验):

#loader {
    position: fixed;
    top: 0;
    left: 0;
    ...
}

div滚动时会显示

在这种情况下,您不需要 "body.loading" 规则。

加载器由于定位而滚动,所以我们可以通过将位置css更改为position:fixed来轻松去除滚动; 它将 100% 工作......

#loader {
    position: fixed;
    background: #eeeeee;
    bottom: 0;
    height: 100%;
    left: 0;
    right: 0;
    top: 0;
    width: 100%;
    display:block;
    margin: 0 auto;
    overflow: hidden;
    z-index: 9999;
}

对我来说,这是在显示 de Loader 时删除滚动条的最佳解决方案

   html, body.loader {
        overflow: hidden !important;
    }