如何在 "sticky" 导航上设置偏移量?

How can I set an offset on my "sticky" navigation?

我的网站上有一个固定的 header,高度为 65 像素。我在页面下方大约 3/4 处有一个辅助导航,一旦滚动到它,我想将其固定到 header 的底部。

我已经使用 Josh Lee's answer on this post 来使功能正常工作,但是,因为我的 header 是固定的,辅助导航会直接滚动过去,一旦它到达顶部就固定了页。

因为它完全绕过了我的 header,我如何为触发器设置一个偏移量,使其发生在距离屏幕顶部 65px 的位置?

在我的 <head>:

<script>
function moveScroller() {
    var move = function() {
        var st = $(window).scrollTop();
        var ot = $("#scroller-anchor").offset().top;
        var s = $("#mydiv");
        if(st > ot) {
            s.css({
                position: "fixed",
                top: "65px"
            });
        } else {
            if(st <= ot) {
                s.css({
                    position: "relative",
                    top: ""
                });
            }
        }
    };
    $(window).scroll(move);
    move();
}
</script>

在我的页面上:

<div id="scroller-anchor"></div>
<div id="mydiv" class="">
    <ul class="wrap">
        <li> ... </li>
        <li> ... </li>
        <li> ... </li>
        <li> ... </li>
    </ul>
</div>
<script type="text/javascript"> 
  $(function() {
    moveScroller();
  });
</script> 

我相信您在检查何时将位置更改为固定位置时需要考虑 space,例如将 ot 变量更改为

var ot = $("#scroller-anchor").offset().top - 65;

我不知道这是否可以被视为解决我问题的 "correct" 方法,但它似乎对我有用...我将 top:-65px 添加到 [=12] =] 元素。

<div id="scroller-anchor" style="top: -65px;"></div>