css - 在具有动态高度的其他粘性元素之后堆叠粘性元素

标签 css sticky

我需要像这样堆叠一些粘性标题元素: https://webthemez.com/demo/sticky-multi-header-scroll/index.html

这个问题在here中的stackover中有解决方案.但就我而言,我的粘性标题具有动态高度。因此不可能硬编码棒头的顶部位置。我的代码如下:

html

<div class="sticky-header1">
    Header 1 with dynamic height
</div>
<div>
    Header 1 content
</div>

<div class="sticky-header2">
    Header 2 with dynamic height
</div>
<div>
    Header 2 content
</div>

CSS

.sticky-header1,
.sticky-header2
{
    position: sticky;
}

在这种情况下是否可以设置堆叠式粘性 header ?首选纯 CSS 解决方案。

最佳答案

也许你需要像这样使用 javascript:

firstdiv =document.querySelector(".first");
secondiv =document.querySelector(".second");
thirdiv = document.querySelector(".third");
const fheight = firstdiv.offsetHeight;
const sheight = secondiv.offsetHeight;
secondiv.style.top= `${fheight}px`;
thirdiv.style.top= `${fheight+sheight}px`;
body {
  margin:0;
  min-height:200vh;
  border:2px solid;
}
.first {
  height:50px;
  background:red;
  position:sticky;
  top:0;
}

.second {
  height:60px;
  background:blue;
  position:sticky;
}
.third {
  height:80px;
  background:green;
  position:sticky;

}
<div class="first"></div>
<p>lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum</p>
<div class="second"></div>
<p>lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum</p>
<div class="third"></div>
<p>lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum</p>

关于css - 在具有动态高度的其他粘性元素之后堆叠粘性元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56356423/

相关文章:

html - 最后一个 <li> 没有和其他人一起到位

css - 如何将 div 包装到 "hug"svg 元素?

css - css中如何通过一些工具获取内联元素的行内框和内容区域的具体位置,比如chrome dev tools?

php - 在 div 中显示来自服务器的图像(最新的优先)PHP

windows - Windows 便签中的鼠标滚动

jquery - 创建粘性元素

c# - 每次访问登录表单时 ASP.NET 中的随机图像

javascript - anchor 导航与粘在顶部菜单...需要添加动态偏移到 anchor

jQuery悬停: fading in a hidden div while fading out the "default" one

javascript - 做一个粘性侧边栏?