简体   繁体   中英

Need Code for Keeping a Bar at top when scrolling

I have a HTML and CSS bar which is added to the top of a site, and need some code to keep it at the top when scrolling down.

I would be preferably using JavaScript, or anything that works, I just need something to keep it at the top.

Help is appreciated!

Check out this site for what I am looking for - http://9gag.com/

9gag.com also uses position:fixed; for the header, but in your case, it's making it position:fixed !important is the solution, since it's overridden below where you've put it on your site (at the top).

CSS:

#netbar{position:fixed !important;}

Live demo | Demo source

Edit:

The easiest way to achieve this without sacrificing the suckerfish position is to use jQuery, as you've mentioned

$(document).ready(function () {
  $(window).scroll(function () {
    $("#enjin-bar").css({
      "top": Math.max($('body').scrollTop(), $('html').scrollTop()) + 4
    });
    $("#netbar").css({
      "top": Math.max($('body').scrollTop(), $('html').scrollTop())
    });
  });
});

Live demo | Demo source

It works, however it's incredibly glitchy; just set netbar to absolute again by removing the #netbar{position:fixed !important;} line from your site

Or if you're willing to sacrifice the suckereye's position for a little less glitchy-ness, use this code instead:

$(document).ready(function () {
  $(window).scroll(function () {
    $("#enjin-bar").css({
      "top": Math.max($('body').scrollTop(), $('html').scrollTop()) + 4
    });
  });
});

The enjin-bar is not a part of the netbar and that's the main reason why it doesn't follow the netbar when you scroll, so the easiest way to bypass this is to use jQuery

Live demo | Demo source

Edit2:

Replace the code from the pastie to the one below:

<div id="netbar">
    <div id="discover" role="directory">
        <ul>
    <li class="suckerfish">
        <span class="sitelogo">LinkyCraft</span>
        <ul class="section-drop">
            <li class="link-two"><a href="http://www.linkycraft.net/servers">Server Status</a></li>
            <li class="link-three"><a href="http://www.linkycraft.net/home">Survival Home</a>
            <li class="link-five"><a href="http://www.monlotron.enjin.com/">Our Designer</a>
</li>
        </ul>
    </li>
</ul>
    </div>
</div>

<style>

div#netbar a {
    color: #DEE3E6;
}
div#netbar a:hover {
    color: #FFFFFF;
}
div#netbar li {
    float: left;
    margin: 0;
    position: relative;
}
div#netbar > a {
    border-right: 1px solid #333333;
    display: block;
    float: left;
    line-height: 29px;
    padding: 0 10px;
}
div#netbar > a:hover {
    background: none repeat scroll 0 0 #222222;
}
div#netbar .suckerfish {
    z-index: 9998;
}
div#netbar .suckerfish > .section-drop {
    background-color: #222222;
    border-bottom-left-radius: 6px;
    border-bottom-right-radius: 6px;
    border-top: medium none;
    box-shadow: 0 1px 1px rgba(0, 0, 0, 0.3);
    position: absolute;
    z-index: 2;
    float: left;
}
div#netbar .suckerfish > a, div#netbar .suckerfish > span {
    display: block;
    font-size: 12px;
    line-height: 12px;
    padding: 8px 16px 9px 10px;
    white-space: nowrap;
}
div#netbar .suckerfish ul li {
    float: none !important;
    margin: 0;
    width: auto;
}
div#netbar .suckerfish:hover {
    background-color: #222222;
}

.suckerfish .section-drop{
    left: -9999px;
}


div#netbar {
    border-radius: 0 0 3px 3px;
    -moz-border-radius: 0 0 3px 3px;
    -webkit-border-radius: 0 0 3px 3px;
    background:-moz-linear-gradient(top,#4d4d4d 0,#343434 100%);
    background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#4d4d4d),color-stop(100%,#343434));
    background:-webkit-linear-gradient(top,#4d4d4d 0,#343434 100%);
    background:-o-linear-gradient(top,#4d4d4d 0,#343434 100%);
    background:-ms-linear-gradient(top,#4d4d4d 0,#343434 100%);
    background:linear-gradient(top,#4d4d4d 0,#343434 100%);
    -moz-box-shadow:inset 0 0 1px #666,1px 1px 2px rgba(0,0,0,.65);
    -webkit-box-shadow:inset 0 0 1px #666,1px 1px 2px rgba(0,0,0,.65);
    box-shadow:inset 0 0 1px #666,1px 1px 2px rgba(0,0,0,.65);
    color:#dee3e6;
    height:28px;
    padding:0;
    position:absolute;
    width:4000px;
    left:-1460px;
    top: 0;
    z-index:4;
    -webkit-box-sizing:border-box;
    -moz-box-sizing:border-box;
    box-sizing:border-box;
    margin: 0;
    padding: 0;
    border: 0;
    font-weight: inherit;
    font-style: inherit;
    font-size: 100.01%;
    font-family: inherit;
    vertical-align: baseline;
    outline: 0;
}


div#netbar li.suckerfish  {
    position: relative;
    left: 1460px;
}

 #enjin-bar  {margin-left: 175px;}

div#netbar .sitelogo {
    background: url("http://files.enjin.com/93809/LinkyCraft/Images/Headers/Netbar.png") no-repeat scroll 6px 1px transparent;
    text-indent: -9999px;
    width: 150px;
}

#enjin-bar {
z-index: 25; 
}

div#enjin-bar > div.left > a:first-child {
display: none;
}

#netbar li {
    list-style: none outside none;
}
div#netbar a {
    color: #DEE3E6;
}

div#netbar .suckerfish {
    z-index: 9998;
}
div#netbar .suckerfish ul li {
    float: none !important;
    margin: 0;
    width: auto;
}
div#netbar .suckerfish:hover {
    background-color: #222222;
}
div#netbar .suckerfish > ul li a {
    display: block;
    font-size: 12px;
    line-height: 12px;
    padding: 6px 12px;
    white-space: nowrap;
}
div#netbar .suckerfish > ul li a:hover {
    background-color: #111111;
}
div#netbar .suckerfish > ul li:last-child a {
    border-bottom-left-radius: 6px;
    border-bottom-right-radius: 6px;
}
div#netbar .suckerfish > span:after, div#netbar .suckerfish > a:after {
    border-color: Silver transparent transparent;
    border-right: 3px dashed transparent;
    border-style: solid dashed dashed;
    border-width: 3px 3px 0;
    content: "";
    display: block;
    height: 0;
    line-height: 0;
    padding-top: 1px;
    position: absolute;
    right: 6px;
    top: 13px;
    width: 0;
}

div#netbar div#discover {
    float: left;
    height: 28px;
}
div#netbar div#discover ul > li {
    float: left;
    height: 28px;
    line-height: 28px;
    position: relative;
}
div#netbar div.help-links {
    border-right: 1px solid #333333;
    float: left;
}
div#netbar div#discover ul li span {
    border-right: 1px solid #333333;
}
div#netbar div#discover ul li span:hover {
    color: #FFFFFF;
    cursor: default;
}
div#netbar div#discover li.suckerfish ul {
    top: 27px;
    width: 200px;
    padding-left: 0;
}
div#netbar div#discover li.suckerfish ul li a {
    background-position: left center;
    background-repeat: no-repeat;
    padding-left: 30px;
}


.suckerfish:hover .section-drop{
    left: 0px;
}
</style>
<script type="text/javascript">
$(document).ready(function () {
  $(window).scroll(function () {
    $("#enjin-bar").css({
      "top": Math.max($('body').scrollTop(), $('html').scrollTop()) + 4
    });
    $("#netbar").css({
      "top": Math.max($('body').scrollTop(), $('html').scrollTop())
    });
  });
});

  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-37359442-1']);
  _gaq.push(['_trackPageview']);

  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();





</script>

尝试添加此:

div#netbar { position: fixed; top: 0; }
div#netbar
{
    position:fixed;
}

Setting a position's property as a fixed may solve your problem!

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