滚动条时,导航条会固定。导航栏完美运行。但是,我还有一个辅助导航栏,可以在主导航下方打开。当主导航滚动到时,辅助导航将变为固定。
在我的网站上刷新页面时,会保留刷新前的滚动位置。如果我将页面刷新一半,并尝试打开辅助导航,则不可见。我发现刷新时固定定位已从辅助导航中删除。但是,如果从滚动位置向上或向下滚动,代码将读取滚动位置,并应用固定位置。
我是一个JQuery新手,所以我不确切地知道我需要解决这个问题。我愿意接受建议。我想我需要在刷新时获得滚动位置。然后我可以应用逻辑来保持辅助导航上的固定位置不被删除。
$(window).scroll(function() { // assign scroll event listener
var s = $("#primary-nav");
var pos = s.position(); // get current position
$(window).scroll(function() {
var windowpos = $(window).scrollTop();
//s.html("Distance from top:" + pos.top + "<br />Scroll position: " + windowpos);
if (windowpos > pos.top) {
$('#secondary-nav').css({
position: 'fixed',
top: '60px',
zIndex: '505',
});
} else {
$('#secondary-nav').css({
position: 'static',
});
});
&#13;
答案 0 :(得分:2)
我会尝试将所有代码放在函数中,然后在滚动事件上调用该函数,最初在页面加载时调用。
function navScroll(){
var s = $("#primary-nav");
var pos = s.position(); // get current position
var windowpos = $(window).scrollTop();
//s.html("Distance from top:" + pos.top + "<br />Scroll position: " + windowpos);
if (windowpos > pos.top) {
$('#secondary-nav').css({
position: 'fixed',
top: '60px',
zIndex: '505',
});
} else {
$('#secondary-nav').css({
position: 'static',
});
}
}
$(window).scroll(function() {
navScroll();
});
$(document).ready(function() {
navScroll();
});