如果 div 在我原来的 header 下滚动时改变了高度,我该如何修复它?

How can I fix a div under my original header if it changes height when scrolling?

我创建了一个额外的菜单栏 (.secondnav),我想将其放在网站中原始 header (#headAnnouncementWrapper) 的正下方。问题是,滚动时,header 的高度从相对位置变为固定在顶部时会发生变化,在移动设备上也会发生变化。

我一直在尝试这个:

 var scrolled = 78;
   var headHeight = $('#headerAnnouncementWrapper').height();
$(window).scroll(function() {
if ($(window).scrollTop() > scrolled) {
  $('.secondnav').css('position', 'fixed');
  $('.secondnav').css('top', headHeight);
} else {
  $('.secondnav').css('position', 'relative'),
  $('.secondnav').css('top', headHeight);
}
  });

但我不知道我应该如何计算 headHeight 变量以便它随着高度的变化而变化,以及如何使用该结果作为 .secondnav 的最高值css.

检查滚动事件中主要 header 的高度。每次滚动事件触发时,它都会重新检查高度。然后,下一行将调整下方 header 的上边距以匹配上方 header 的高度。 Top-margin这里替换你的位置方法。

var scrolled = 78;

$(window).scroll(function() {
    var headHeight = $('#headerAnnouncementWrapper').height();
   $('.secondnav').css('marginTop', headHeight);
if ($(window).scrollTop() > scrolled) {
  $('.secondnav').css('position', 'fixed');
} else {
  $('.secondnav').css('position', 'relative'),
}
  });