javascript - 向下滚动 50px 后如何让导航栏出现并锁定?

标签 javascript jquery html css scroll

我正在制作一个单页样式的网站,滚动 1 像素后(即主页已通过)我希望导航栏出现并固定在顶部。

我已经尝试了 .scroll() jQuery,但我没有运气。

HTML:

<div id="navbar">
        <div id="nav-container">
            <img id="logonavbar" src="#">
            <a id="ABTUS" href="#">ABOUT US</a>
            <a id="SRVCS" href="#">SERVICES</a>
            <a id="PRTFLO" href="#">PORTFOLIO</a>
            <a id="CNTCT" href="#">CONTACT</a>

        </div>
    </div>

CSS:

#navbar {
    width: 100%;
    background-color: white;
    overflow: auto;
    position: fixed;
    left: 0px;
    top: 0px;
    border-bottom: solid;
    border-width: 1px;
    border-color: #afafaf;
    overflow: hidden;
    z-index: 10;
    display: none;
}

#nav-container {
    max-width: 1200px;
    min-width: 700px;
    margin: 0 auto;


}

#logonavbar {
    float: left;
    margin: 0 auto;
    width: 125px;
    padding: 10px 0 0 0;

}

#nav-container a {
    float: right;
    display: block;
    padding: 25px 15px;
    text-decoration: none;
    color: black;
    font-family: "calibri light", calibri,sans-serif;
    font-size: 20px;
    transition: background-color 0.5s ease;

}

#nav-container a:hover {
    background-color: #f4f4f4;
    transition: background-color 0.5s ease;
}

#nav-container a:active {
    background-color: #bfbfbf;
}

#nav-container h1:hover {
    color: #aaaaaa;
    transition: color 0.3s ease;
}

jQuery:

$(document).scroll(function() {
  if ($document.scrollTop() >= 50) {
    $('#nav-container').css('display': 'inline', 'position': 'fixed');
  }
});

最佳答案

这里我做了一个简单的例子,在你滚动页面后,它会粘在页面的顶部。也许它也可以帮助你!

http://corexsystems.net/2017/09/08/simple-sticky-menu-in-jquery-css3/

这是这个例子的来源!

  <html>
  <head>
    <script type="text/javascript" src="https://code.jquery.com/jquery-3.2.1.min.js">
    <script>
      $(function(){
        var  pos = $("#topMenuX").offset().top,
        win = $(window);
        win.on("scroll", function() {
          win.scrollTop() >= pos ? $("#topMenuX").addClass("fixed") : $("#topMenuX").removeClass("fixed");      
        });      
      });
    </script>
    <style>
      body {
        padding:0;
        margin:0px;
      }
      #topMenuX {
        background: #666;
        padding: 20px;
        height:45px;
        color: #fff;
      }
      #topMenuX .insideMenu li {
        float:left; 
        list-style:none;
      }
    </style>
  </head>
  <body>
    <div id="topMenuX">
      <ul class="insideMenu">
        <li>CoreXDesigns</li>
        <li>Simple Sticky Menu Example</li>
      </ul>
    </div>
  </body>
</html>

关于javascript - 向下滚动 50px 后如何让导航栏出现并锁定?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46268876/

相关文章:

javascript - 向大型项目添加 javascript 命名空间

javascript如何将变量添加到字符串

javascript - 在浏览器操作弹出窗口中:打开一个新标签并填写输入字段

javascript - 当类未知时,JS 在两个 div 之间添加悬停类。

javascript - jquery 上的点击事件不起作用

Jquery.Hover 不适用于动态元素

javascript - setInterval 问题

php - 如何将 CSS 应用到 php 中包含的 HTML 元素?

javascript - 如何删除使用变换比例显示的滚动条?

html - 容器 div 未拉伸(stretch)到父级的全高