Jquery 如何制作浮动菜单,直到你滚动到它上面时,它才会消失

Jquery 如何制作浮动菜单,直到你滚动到它上面时,它才会消失,jquery,menu,sidebar,Jquery,Menu,Sidebar,我想做一份固定的菜单。但我只想在滚动过它的情况下修复它。 事实上,我想要它就像stackoverflow中提问部分的“how to…”菜单一样 我以为你需要jquery来做这些事情,但我对jquery真的不太了解 我把这个代码用于菜单,我想让它浮动。因此,整个边栏div需要浮动: <div id="sidebar"> <div> <h2 class="title">Sites</h2> <u

我想做一份固定的菜单。但我只想在滚动过它的情况下修复它。 事实上,我想要它就像stackoverflow中提问部分的“how to…”菜单一样

我以为你需要jquery来做这些事情,但我对jquery真的不太了解

我把这个代码用于菜单,我想让它浮动。因此,整个边栏div需要浮动:

 <div id="sidebar">
     <div>
        <h2 class="title">Sites</h2>
            <ul>
                <li><a>first li</a></li>
                <li><a>second li</a></li>
                <li><a>third li</a></li>
        </ul>   
    </div>
    <div>
        <h2 class="title">Sites</h2>
            <ul>
                <li><a>first li</a></li>
                <li><a>second li</a></li>
                <li><a>third li</a></li>
            </ul>   
    </div>
</div>

地点
  • 第一李
  • 二里
  • 三里
地点
  • 第一李
  • 二里
  • 三里
我知道如何让它漂浮到页面顶部,但我希望它漂浮在包装中

我希望你们能帮助我

编辑

现在我有了浮动菜单,其中包含以下代码:

<script type="text/javascript">
    $(function() {
        var offset = $("#sidebar").offset();
        var topPadding = 15;
        $(window).scroll(function() {
            if ($(window).scrollTop() > offset.top) {
                $("#sidebar").stop().animate({
                    marginTop: $(window).scrollTop() - offset.top + topPadding
                });
            } else {
                $("#sidebar").stop().animate({
                    marginTop: 0
                });
            };
        });
    });
</script>

$(函数(){
var offset=$(“#边栏”).offset();
var=15;
$(窗口)。滚动(函数(){
if($(窗口).scrollTop()>offset.top){
$(“#侧边栏”).stop().animate({
marginTop:$(窗口).scrollTop()-offset.top+topPadding
});
}否则{
$(“#侧边栏”).stop().animate({
玛金托普:0
});
};
});
});

但当我向下滚动时,会有一种非常恼人的反弹效果。有没有办法消除这种影响?

简而言之:您将绑定到窗口的事件,并检查当前(从页面顶部到当前视口顶部像素的距离)是否大于从页面顶部到侧边栏顶部的距离。
如果这是给定的,您将设置差异为marginTop,以使侧边栏保持在可见区域


有关示例和更多信息,请参见。

一个小问题,当您向下滚动时,我可以消除反弹吗?或者是因为他必须加载页面,因此页面会反弹。因为我希望它更像是修复时的样子。为了避免动画,请同时替换
$sidebar.stop().animate({
,在上面链接的示例代码中,
$sidebar.css({
)以不设置页边空白顶部的更改动画,而是立即设置。希望这对我有所帮助,因为我不确定“反弹”是什么意思。