修复

时间:2018-04-23 17:32:46

标签: javascript css scroll menu fixed

我正在处理一个固定在页面右侧的菜单。我正在使用一些JavaScript将菜单保持在其固定位置,直到该站点到达特定位置(从顶部243px - 清除我的标题)。所有这一切都按照我的意图工作......但是我正在寻找一种方法让菜单停止从底部滚动特定数量的像素(清除我的页脚 - 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小提琴:https://jsfiddle.net/050dqcea/
原始解决方案(从顶部滚动):Stopping fixed position scrolling at a certain point?

1 个答案:

答案 0 :(得分:1)

我想我现在明白了,小提琴并没有加载jQuery,所以它根本没有按预期运行。

您可以更改您希望如何展示或隐藏这些内容,这取决于您。我会对用户可能会对菜单消失感到多么激动做出一些评论,但这取决于您自己决定。或者,您可以使用这些触发器来重新&#34;重新定义&#34;你的菜单。世界是你的牡蛎等。

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

你的小提琴:https://github.com/kataras/iris/blob/master/_examples/http-listening/listen-tls/main.go#L22