简体   繁体   中英

How can I get the navigation bar to appear and lock on after scrolling 50px down?

I'm making a single page style website and after scrolling 1 px has been scrolled (ie the homepage has been passed) I want the navigation bar to appear and stay fixed at the top.

I've tried the .scroll() jQuery and I'm having no luck.

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');
  }
});

Here I have made a simple example of a element that sticks to the top of the page after you scroll over it. Maybe it can help you as well!

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

Here is the source of this example!

  <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>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM