JQuery:在页面刷新

时间:2016-07-27 13:58:42

标签: jquery css drupal-7

滚动条时,导航条会固定。导航栏完美运行。但是,我还有一个辅助导航栏,可以在主导航下方打开。当主导航滚动到时,辅助导航将变为固定。

在我的网站上刷新页面时,会保留刷新前的滚动位置。如果我将页面刷新一半,并尝试打开辅助导航,则不可见。我发现刷新时固定定位已从辅助导航中删除。但是,如果从滚动位置向上或向下滚动,代码将读取滚动位置,并应用固定位置。

我是一个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;
&#13;
&#13;

1 个答案:

答案 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();
});