javascript - 粘性导航栏但有边距

标签 javascript jquery css

我试图在用户滚动时有一个粘性导航栏,但是当第一次登陆页面时,导航栏顶部有一个 10px 的小边距(导航栏顶部和这一页)。当它向下滚动超过 10px 时,它会停留在页面顶部。

我指的是本教程并尝试在不使用标题的情况下对其进行调整:http://codepen.io/anon/pen/wavyZL

但是,我无法获得平滑的滚动,我认为这是因为我无法正确调整如何在“hdr”的 jquery 代码中获取值;而不是主导航的高度,我只想获得 body 的 padding-top 的值,即 10px。这是我的问题吗?

我只是很沮丧,因为我似乎无法理解如何搜索正确的答案(如果我什至确定了正确的问题)。任何建议表示赞赏。

CSS:

body {
  margin: 0;
  padding-top:10px;
}
.main-nav,
.main {
  position: relative; 
}
.main-nav {
  background: red;
  height: 50px;
  z-index: 150;
  margin-bottom: -50px;
  box-shadow: 0 2px 3px rgba(0,0,0,.4);
}
.main-nav-scrolled {
  position: fixed;
  width: 100%;
  top: 0;
    }
.main {
  background: #f2f2e8;
  padding: 100px 
}

j查询:

var  mn = $(".main-nav");
mns = "main-nav-scrolled";
hdr = $('.main-nav').height();

$(window).scroll(function() {
  if( $(this).scrollTop() > hdr ) {
    mn.addClass(mns);
  } else {
    mn.removeClass(mns);
  }
});

最佳答案

天哪,没关系。我想到了。我只需要将它替换为 10 的像素值!!不过,如果有人有其他值得一读的资源,请告诉我。

var  mn = $(".main-nav");
mns = "main-nav-scrolled";

$(window).scroll(function() {
  if( $(this).scrollTop() > 10 ) {
    mn.addClass(mns);
  } else {
    mn.removeClass(mns);
  }
});

关于javascript - 粘性导航栏但有边距,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29820451/

相关文章:

javascript - 如何在 JavaScript 中为此函数实现闭包?

javascript - 在php中生成的动态表中更改td的颜色

javascript - 改变 iframe 的宽度

css - 删除响应元素

c# - 在 asp.net c# 中使用 javascript 从具有单选按钮的 gridview 列获取值

javascript - 按数组分组

javascript - 滚动条不会在页面上更新

javascript - 使用 AJAX 加载 JSON 以在另一个函数中使用

javascript - Asp.Net 按钮回发不断触发

javascript - 将 Controller 添加到 AngularJS 中动态构造的 div