javascript浮动菜单栏中持有div

时间:2011-03-24 20:02:16

标签: javascript

我有一个位于我的网页上的JavaScript菜单栏,然后​​当浏览器栏到达菜单顶部时,它会锁定到一个固定位置并随窗口一起移动。但是,我需要在div中包含菜单,如何做到这一点?

这是我的菜单栏:

<script type="text/javascript"     src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
<script type='text/javascript'>
$(window).load(function(){
    $(window).scroll(function(){
        if ($(window).scrollTop() >= 200)
        {
            $("#floatbar").css({position:'fixed',left:'0',top:'0'});
        }
        else
        {
            $("#floatbar").css({position:'absolute',left:'0',top:'200px'});
        }
    });
});
</script>

这是我的HTML:

<div id="menu_runner">
    <div id="floatbar">
        <a href="#issue49">Issue 49</a><br />
        <a href="#issue48">Issue 48</a><br />
        <a href="#issue47">Issue 47</a><br />
        <a href="#issue46">Issue 46</a><br />
    </div>
</div>

和我的css:

#menu_runner {
    width: 100px;
    height: 2000px;
    float: right;
    position: relative;
}
#floatbar {
    width: 70px;
    position: absolute;
    top: 200px;
}

其中菜单运行器是包含菜单的div,浮动栏显然包含运行JavaScript的菜单。

然而,当我尝试使用此代码时,菜单会向左移动并从顶部开始200px,而不是在menu_runner div中。如何使浮动条位于menu_runner div中,然后使用div中的JavaScript向下滚动。

1 个答案:

答案 0 :(得分:1)

if ($(window).scrollTop() >= 0)&lt; ------将其设置为零或 你可以用css

#floatbar {
     position:fixed;
     top: 10px;  /* tells browser the div should position at the very bottom of the window */
     right: 1px;  /* tells the browser the div should have no space on the right */
     left: 1px;  /* tells the browser the div should have no space on the left */
     margin: 1px; /* because we want this width: 100%, the margin must be 0 */
     padding: 1px; /* because we want the width: 100%, the padding must be 0 */
     width: 10px; /* makes the div a bar stretching across the bottom of the screen */
     height: 35px; /* makes the floating bar 35 pixels high*/
     z-index: 9999; /*positions this div on top of all other elements in the site - this number can increase or decrease to your liking */
     border:1px solid #000;
}