javascript - 位置 :fixed floating menu confined to scroll position

标签 javascript css

我有一个菜单,我想使用 css 将其保留在页面上的相同位置:

position:fixed;
top: 0;

但我希望菜单在页面滚动时不会超出某个区域。请查看此示例(滚动结果窗口)。

http://jsfiddle.net/Fg2MA/1/

这可以只用 CSS 来完成吗,或者有人可以建议一个优雅的 JS 解决方案吗?

非常感谢。

最佳答案

我认为如果没有 java 脚本(或者可能是非常棘手的 css 技巧?),它就无法工作,但是如果您可以选择使用 JQuery,解决方案非常简单,只需执行以下操作:

$(document).on('scroll', function () {
    if ($(document).scrollTop() > ($("#container")[0].offsetTop + $("#container").height())) {
        $("#menu").css({
            display: "none",
        });
    }
    else {
       $("#menu").css({
            display: "block",
        }); 
    }
});

在条件中,它检查实际滚动位置是否在容器的开头下方。如果是,则将 #menu 的 css 更改为 display: none; 否则为 display: block;

参见 fiddle :http://jsfiddle.net/Fg2MA/3/

关于javascript - 位置 :fixed floating menu confined to scroll position,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17048073/

相关文章:

html - div 内的宽表 - div 不拉伸(stretch)

javascript - 如何在更改或选择事件时禁用多选?

javascript - 将表数据转换为xml结构格式?

javascript - 推送到具有 __proto__ 的 Javascript 数组

javascript - 相当于 react 样式中的 ul li

html - 阻止 Iframe 阻止父文档的滚动?

html - 如何使 Bootstrap 导航栏透明

html - div 中子元素的 Z 索引

javascript - 从浏览器打开文件时出现奇怪的 Javascript/vbscript 行为

javascript - Bluebird 递归 promise 未得到解决/履行