仅当其顶部到达窗口顶部时才修复标题
Header fixed only when its top reached the top of the window
我有一个带有类.fullscreen
的div,这个类与一个小的JavaScript函数相关联,该函数将使该div显示为全屏。"即div.fullscreen
的宽度和高度将是100%"。
//Fullscreen
$(window).on("ready resize", function () {
if ($(window).width() > 1024) {
var newHeight = $("html").height() - $("#header").height() + "px";
$(".fullscreen").css("height", newHeight);
} else {
$(".fullscreen").css("height", "auto");
}
});
因此,高度和宽度不是固定的,而是根据窗口的缩小动态计算的。
在该div 下,还有另一个具有 ID 标头"导航栏",标题最初相对位于div.fullscreen 下方 - 但是,当 #header 顶部到达浏览器窗口顶部时,我试图将其定位为 Fixed。
所以这就是我正在玩的东西,它切换了固定样式,但它没有在正确的位置切换它......
var offset = $('#header').offset();
$(window).scroll(function () {
$('#header').addClass('fixed-nav');
if ($(document).scrollTop() < 150) {
$('#header').removeClass('fixed-nav');
}
});
所以,我试图整合(var newHeight = $("html").height() + "px";
)以下内容,但没有希望:
var newHeight = $("html").height() + "px";
var offset = $('#header').offset();
$(window).scroll(function () {
$('#header').addClass('fixed-nav');
if ($(document).scrollTop() < newHeight) {
$('#header').removeClass('fixed-nav');
}
});
问题的实时示例:http://loai.directory/martin/
您只想在滚动过去.fullscreen
div 时添加fixed-nav
类。例如:
$(window).on('scroll', function () {
if ($(window).scrollTop() >= $(window).height())
$('.nav').addClass('fixed');
else
$('.nav').removeClass('fixed');
});
我在这里使用了$(window).height()
,因为我们知道.fullscreen
的高度等于窗户的高度,但我们也可以使用 $('.fullscreen').height()
.请注意,我们不能使用$('.nav').offset().top
因为在 nav 固定后,此偏移量不会提供正确的数字。
请参阅此 JSFiddle。
您还需要添加各种resize
侦听器,以便在调整窗口大小时处理更改。
相关文章:
- 花式盒子3.0标题在顶部
- 滚动然后修复到 html 中的顶部标题
- 试图在CSS中以顶部标题居中链接,但不会移动
- 幻灯片顶部带有标题的柔性滑块
- 粘性标题捕捉到顶部到早期
- 使粘性标题粘在顶部
- 如何将剑道网格标题文本保持在顶部
- 如何在输入单击时出现键盘时使标题粘在顶部 (iPhone)
- 通过单击任何单元格或表格数据及其左侧和顶部标题进行查找
- 如何通过jquery将滚动头文本加载到顶部固定标题区域
- jQuery:在滚动时切换标题类,如果页面不在顶部
- 将红色标题附加到边框顶部
- WordPress-标题位置顶部,左&正确的
- 如何在外部网站的顶部显示webapp的标题栏
- 如何防止任何iframe或任何其他脚本在顶部窗口更改文档的标题
- 在页面顶部显示标题-滚动事件重新触发问题
- 使用换行标题时,在顶部显示标题文本
- 纸卷标题面板,工具栏到达顶部后保留
- Angular注入了长内容的页面会让整个页面在页面顶部下方加载,切断了页面标题
- 如何仅按顶部标题行对表进行排序