固定 div 滚动停止后

Fixed div scroll stop after

我正在制作固定在页面右侧的菜单。我正在使用一些 JavaScript 将菜单​​保持在固定位置,直到站点到达特定位置(距顶部 243 像素 - 这清除了我的 header)。所有这些都按我的预期工作......但我正在寻找一种方法让菜单停止从底部滚动到特定数量的像素(清除我的页脚 - 600px)。

JavaScript 看起来像:

$(window).scroll(function(){
    $("#side").css("top",Math.max(15,243-$(this).scrollTop()));
});

HTML 看起来像:

<div class="menu">
    <div id="side">
        <ul>
            <li>Item1</li>
            <li>Item2</li>
            <li>Item3</li>
        </ul>
    </div>
</div>

CSS 看起来像:

.menu {
    right: 0;
    position: absolute;
    top: 243px;
    width: 250px;
    z-index: 5;
}

#side {
    background: #ace;
    position:fixed;
    width: 250px;
}

JS Fiddle: https://jsfiddle.net/050dqcea/
原始解决方案(从顶部滚动):Stopping fixed position scrolling at a certain point?

我想我现在明白了,fiddle 没有加载 jQuery,所以它不是预期的 运行。

您可以更改显示或隐藏方式,这由您决定。我想对您的用户对菜单消失的恼怒程度发表一些评论,但这取决于您的决定。或者,您可以使用这些触发器 "refix" 您的菜单。世界尽在掌握等

我在这里使用了$("#side").offset().top。这个想法是检查菜单底部何时滚动到页脚顶部。然后把它带回来我们检查垂直滚动是否小于页脚顶部的偏移量。

一个fiddle给你:https://jsfiddle.net/5p90s06n/1/