jquery - 导航栏固定缩小下的封面图像

标签 jquery html css

我有一个容器,它覆盖了我页面 100% 的高度,并带有背景图片。我有一个固定的 <navbar>滚动,但每当我向下滚动时,我的背景图像就会跳起来。

我尝试添加 padding-top<navbar>下的区域每当我开始滚动时,这都会导致我的封面图片的高度缩小一点。

如何保持图像的大小并使用固定的 <navbar> 消除滚动上的跳跃?

$(function() {
  var stickyNavTop = $('.navbar').offset().top;
  var stickyNav = function() {
    var scrollTop = $(window).scrollTop();

    if (scrollTop > stickyNavTop) {
      $('.navbar').addClass('sticky');
      $('#landingDiv').addClass('stickyLandingDiv');

    } else {
      $('.navbar').removeClass('sticky');
      $('#landingDiv').removeClass('stickyLandingDiv');
    }
  };

  stickyNav();

  $(window).scroll(function() {
    stickyNav();
  });
});
html,
body {
  height: 100%
}

.navbar-nav {
  margin: 0 auto;
}

.navbar {
  z-index: 1000;
  background-color: #191919 !important;
}

.sticky {
  position: fixed;
  width: 100%;
}

.stickyLandingDiv {
  padding-top: 55px;
}

#landingDiv {
  height: 100%;
}

#landingPageImage {
  background-image: url(/Assets/Images/background6-min.png);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  height: 100%;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="header-menu" id="top">
  <nav class="navbar navbar-expand-md bg-dark navbar-dark">
    <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#collapsibleNavbar">
      <span class="navbar-toggler-icon"></span>
    </button>
    <div class="collapse navbar-collapse" id="collapsibleNavbar">
      <ul class="navbar-nav">
        <li class="nav-item ">
          <a href="#top" class="nav-link">test</a>
        </li>
        <li class="nav-item">
          <a href="#item1" class="nav-link">item1</a>
        </li>
        <li class="nav-item">
          <a href="#item2" class="nav-link">item2</a>
        </li>
        <li class="nav-item">
          <a href="#item3" class="nav-link">item3</a>
        </li>
      </ul>
    </div>
  </nav>
</div>
<div id="landingDiv">
  <div id="landingPageImage">
  </div>
</div>
<section id="about">
  <h1> next page section </h1>
</section>

最佳答案

如果没有看到它的实际效果很难判断,但它可能与导航栏从页面流中到 position: fixed 的流中有关,以及它是如何发生的影响后面页面上的元素。我认为您必须首先将导航栏设置为 fixedabsolute ,或者将背景 div 设置为 absolute 所以它不是受到影响。如果您不想处理稍后添加的任何其他可能“跳跃”的元素,第一个选项更好。

关于jquery - 导航栏固定缩小下的封面图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55456504/

相关文章:

javascript - 从列表的隐藏输入中获取正确的值

jquery - 使用 jQuery AJAX 将数组作为参数传递?

javascript - 将表单上的 javascript 验证更改为 onblur 或 onchange 而不是提交

html - 剪辑路径宽度不是 100% 宽度

javascript - jQuery/CSS - 整个 Div 可点击,悬停时激活标签悬停状态

javascript - 我如何修改此模板以添加可滚动到下一部分的按钮?

jquery - 未满足的对等依赖 jquery@>=3.0.0 & popper.js@^1.11.0

javascript - 如何使用 Polymer 打开另一个面板时关闭一个面板

html - chrome 计算样式覆盖了我的样式

html - 右对齐一个div