javascript - 在 div 的可见部分居中内容

标签 javascript html css

我有一个容器 div,它随着网站延迟加载而扩展,因此随着用户滚动而变得越来越高,直到加载所有内容。在这个容器中,我有一些内容希望在容器 div 的可见部分居中,而不管用户滚动到哪里。

例如,用户已经滚动到足以加载所有内容,并且滚动一直向上。相对于容器 div 在任何时候在视口(viewport)中可见的部分,内容仍应位于 div 的中心。

我尝试过将内容设置为 position: fixed; 虽然这可以确保内容在用户滚动的任何地方始终可见,但让内容居中仍然是一个问题。 Justify-content 也不起作用,因为它是相对于容器的大小,而不是视口(viewport)。

如有任何帮助,我们将不胜感激!

最佳答案

我不确定您要问什么,但我为您准备了一个演示。如果您想做其他事情,请检查它并提供更多信息

    .wrapper {
      width: 300px;
      height: 300px;
      background: red;
      position: relative;
    }
    
    .scrollable-area {
      height: 100%;
      overflow: auto;
    }
    
    .centered-element {
      width: 100px;
      height: 100px;
      background: #000;
      position: absolute;
      left: 50%;
      top: 50%;
      transform: translate(-50%,-50%);
    }
    
    .row {
      height: 100px;
      background: blue;
      margin-top: 10px;
    }
<div class="wrapper">
      <div class="centered-element"></div>
      <div class="scrollable-area">
        <div class="row"></div>
        <div class="row"></div>
        <div class="row"></div>
        <div class="row"></div>
        <div class="row"></div>
        <div class="row"></div>
        <div class="row"></div>
        <div class="row"></div>
        <div class="row"></div>
        <div class="row"></div>
      </div>
    </div>

关于javascript - 在 div 的可见部分居中内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52500163/

相关文章:

javascript - 在 jquery 中向上和向下滚动到元素

css - 对齐不直,行不跨越?

javascript - AngularJS 中的多个自定义过滤器

php - 从tinymce获取数据

html - 获取带 float 的电子菜单

html - IE 以不同于 FF/Chrome 的方式呈现内联 block div

javascript - 如何淡化背景图像以便链接/文本可见?

javascript - 为什么我的 browserify 任务会在导出的末尾附加两次

HTML 输入类型 "email"和输入类型 "number"除了输入类型 "text"之外的不同样式

css - react RTL。条件导入 CSS