javascript - 滚动经过 div 后固定的固定菜单

标签 javascript jquery html css

我正在为响应式网站创建固定位置的子导航菜单栏。我能找到的关于滚动后固定在顶部的固定菜单的所有示例都是基于距顶部的一组像素数。

但是,由于我在响应式网站上工作,因此我需要菜单进入的顶部像素因视口(viewport)而异(在小屏幕上,菜单应该在更多区域向下滚动后出现,因为内容填充的区域更高屏幕)。

我有一个工作示例并且正在使用以下 jquery 脚本:

$(document).ready(function(){
$('#navigation a, #fixedbar a').on('click', function(e) {
e.preventDefault();
});

$(window).on('scroll',function() {
var scrolltop = $(this).scrollTop();

if(scrolltop >= 215) {
  $('#fixedbar').fadeIn(250);
}

else if(scrolltop <= 210) {
  $('#fixedbar').fadeOut(250);
}
});
});

如您所见,如果从顶部滚动超过 215 像素,则固定栏会淡入。相反,我想让它在滚动经过某个 div 后出现。这样我就知道它会在用户完全滚动过介绍文本后出现。

Here's my fiddle

有什么好的例子可以说明我想做什么吗?或者修改 jquery 脚本的简单方法?提前致谢。

最佳答案

这个修改会让它在通过静态导航后淡入

DEMO

var $nav = $("#navigation");
if(scrolltop >= $nav.offset().top + $nav.height()) {
  $('#fixedbar').fadeIn(250);
}
else {
  $('#fixedbar').fadeOut(250);
}

关于javascript - 滚动经过 div 后固定的固定菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22722953/

相关文章:

javascript - BootStrap 布局高度 100%

html - 如何使同样具有最大宽度的流体 div 居中?

javascript - 指令 : toggle its boolean attribute value 的 onDblclick

javascript多维数组问题

javascript - 如何定义一个函数来修改 Ajax 请求上提交到服务器的数据

javascript/jquery - 查找数组中最接近的值

javascript - JQuery UI - 如何将包含应用于匹配多个 div 的选择器?

javascript - 表格单元格元素中的 Angular 嵌入

javascript - 在 Chrome 扩展中为 HTTP 请求设置用户代理

javascript - 在 JavaScript 中安全地定义公共(public)回调函数的变量