Javascript 用于粘性导航的浏览器调整大小事件

Javascript 用于粘性导航的浏览器调整大小事件,javascript,jquery,resize,window,sticky,Javascript,Jquery,Resize,Window,Sticky,我已经处理这个问题好几天了,我希望这里有人能帮我。 我正在尝试创建一个粘性导航和一个100%高度的标题(body和html也设置为100%高度)。基本上,我的问题是,粘性导航只有在页面(重新)加载后才能正常工作。但是,在调整浏览器窗口大小后滚动,会使导航跳转到最顶端的固定位置。 我想我需要实现一个resize事件,以便每次调整窗口大小时都触发变量“navOffset”的计算,对吗? 我尝试了许多方法将其插入到我的代码中,下面的链接也解释了这些方法,但每次我都失败了。 我希望有人能向我透露这个秘密

我已经处理这个问题好几天了,我希望这里有人能帮我。 我正在尝试创建一个粘性导航和一个100%高度的标题(body和html也设置为100%高度)。基本上,我的问题是,粘性导航只有在页面(重新)加载后才能正常工作。但是,在调整浏览器窗口大小后滚动,会使导航跳转到最顶端的固定位置。 我想我需要实现一个resize事件,以便每次调整窗口大小时都触发变量“navOffset”的计算,对吗? 我尝试了许多方法将其插入到我的代码中,下面的链接也解释了这些方法,但每次我都失败了。 我希望有人能向我透露这个秘密,因为我对这个越来越疯狂

非常感谢,祝你有一个美好的一周

萨沙

我想要达到的效果示例:

教程对我没有帮助: …/jquery合并文档准备就绪和

jQuery(文档).ready(函数(){
var navOffset=jQuery(“nav”).offset().top;
jQuery(“nav”).wrap(“”);
jQuery(“.nav占位符”).height(jQuery(“nav”).outerHeight());
jQuery(窗口).滚动(函数(){
var scrollPos=jQuery(window.scrollTop();
如果(滚动位置>=导航偏移){
jQuery(“nav”).addClass(“固定”);
}否则{
jQuery(“nav”)。removeClass(“固定”);
}
});

});只需复制第二个函数(您可能应该命名该函数)并将其添加到窗口调整大小事件中:

jQuery(document).ready(function() {

var navOffset = jQuery("nav").offset().top;

jQuery("nav").wrap('<div class="nav-placeholder"></div>');
jQuery(".nav-placeholder").height(jQuery("nav").outerHeight());

function setPosition() {
var scrollPos = jQuery(window).scrollTop();

if (scrollPos >= navOffset) {
jQuery("nav").addClass("fixed");
} else {
jQuery("nav").removeClass("fixed");
}
}

jQuery(window).scroll(setPosition);

jQuery(window).resize(setPosition);
});
jQuery(文档).ready(函数(){
var navOffset=jQuery(“nav”).offset().top;
jQuery(“nav”).wrap(“”);
jQuery(“.nav占位符”).height(jQuery(“nav”).outerHeight());
函数setPosition(){
var scrollPos=jQuery(window.scrollTop();
如果(滚动位置>=导航偏移){
jQuery(“nav”).addClass(“固定”);
}否则{
jQuery(“nav”)。removeClass(“固定”);
}
}
jQuery(窗口)。滚动(设置位置);
jQuery(窗口)。调整大小(设置位置);
});

Hi@firefoxuser_1,非常感谢您的回答。我刚刚尝试了新的代码,但不幸的是,在我调整窗口大小后,导航仍在不断跳转,而当我以新的窗口大小重新加载页面时,它又能正常工作。我不知道是什么问题。。。可能与一些CSS规则有冲突,比如html,body{height:100%;margin:0;padding:0;}