javascript - 如何使用具有 "position:fixed"元素的片段中的代码?我不能让它停留在我的 <div> 的高度内(父级)

标签 javascript html css

我正在尝试使用这个片段(与原始代码的链接):https://codepen.io/starkxx/pen/NdemEv

这是用一些内容编辑的片段(POC 的容器,删除了一些代码):

https://codepen.io/Demky/pen/EzNLVB

我找不到将 stem-wrapper 包含在他新 parent 高度内的解决方案;我认为问题出在这段代码中,但我找不到解决方案

<div class="stem-wrapper">
    <div class="stem"></div>
    <div class="stem-background"></div>
</div>

固定的 stem-wrapper 总是占据整个窗口的高度或消失,如果我试图给他一个position:absolute/相对/...

.stem-wrapper {
  position: fixed;
  top: 0px;
  bottom: 0px;
  left: 50%;
}

我不允许为“top”设置一个静态值,因为我不知道代码段离顶部有多远

我尝试了什么:

  • 我尝试构建一个父对象,这样我就可以在父对象上使用 position:relative 并在子对象上添加 position:absolute ,正如我在此处看到的那样: https://stackoverflow.com/a/20994123/9552861但我没能成功
  • 试图玩位置/容器,但徒劳无功
  • 我也尝试过使用 javascript,但没有取得任何进展

你们能给我一些关于如何找到解决方案的提示吗?

确定问题出在 CSS 上吗?

我是否应该继续尝试将此固定元素 转换为父(position:relative)/子(position:absolute)关系?还是我的方向不对?

如果我需要针对我的问题添加更多信息,请告诉我。 我将 css/html 代码放在 codepen 上以获得更好的可见性,但如果它对读者更好,我可以将其粘贴到此处。

问题截图: Screenshot of the problem

我将代码段导出到另一个网站时出现的问题的屏幕截图(stem- 占据了整个页面) Screenshot of the problem

编辑: 试图使问题更容易理解;

在修改后的代码段 ( this link from top ) 中:

  • 我添加了一个容器(#timelineContainer with background-color:yellow );

  • 我希望“.steam-wrapper”和他的 child (.stem、.stem-background)不会超出黄色区域(用正确的颜色更新了屏幕截图)。

目标是将此 POC/片段包含到一个容器中,这样它就可以在这个沙箱之外工作而无需占用整个页面的高度

最佳答案

如果我明白你想要什么,你需要做的是:

body {
    background: @body-background;
    margin: 0px;
    padding: 0px;
    font-family: sans-serif;
    font-size: 15px;
    line-height: 26px;
    color: #B9CFD0;
    font-family: 'Roboto Slab', serif;
    /*overflow-x: hidden;
    overflow-y: scroll;*/
    overflow: hidden;
}
#timelineContainer {
    overflow: auto;
    height: 60%; /*any height you want the snippet to have*/
}
.container {
    height: 40%;
}

然后你必须稍微调整一下阀杆:

.stem-wrapper {
    position: fixed;
    top: 40%;
    bottom: 0px;
    left: calc(50% - 8px);
    max-height: 60%;
}

之后,您必须调整 JS 以适应新布局。因为滚动功能与正文相关,现在应该与#timelineContainer相关

关于javascript - 如何使用具有 "position:fixed"元素的片段中的代码?我不能让它停留在我的 <div> 的高度内(父级),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56130975/

相关文章:

javascript - 如何隐藏 Google-Maps v3 上的 "MapTypeControlStyle"控件?

javascript - 如何访问中继器内的外部元素?

javascript - 使用 Javascript 在复制和粘贴时去除样式

html - 将导航转换为垂直导航

html - 如何在 HTML 源代码中注释 HTML 标记属性?

javascript - Angular 在自己的 Controller 中处理事件

javascript - HTML 视频播放器对于某些文件出现故障

header 的 CSS 对齐问题

php - while循环导致网站消失

html - 用 flex 连接对 Angular 线 div