2014-11-04 31 views
1

我使用下面的jQuery来我的网站上创建一个棘手的头小问题(http://tinyurl.com/pmow22f):2用粘头

jQuery(document).ready(function($) { 
$(window).scroll(function() { 
if ($(this).scrollTop() > 230){ 
    $('header').addClass("sticky"); 
    $('#headerwrapper').removeClass(); 
    } 
    else{ 
    $('header').removeClass("sticky"); 
    $('#headerwrapper').addClass("headerwrapper"); 
    } 
}); 
}); 

我的问题是:a)向下滚动到230px点时,其中报头捕捉到屏幕的顶部,它似乎闪烁一点,并不是一个非常平稳的过渡,不知道是什么造成这种情况,但如果你看看页面,你可能会看到这一点,和b)如果页面在屏幕中间向下刷新时,页面加载时(因为它在页面顶部,因此不在屏幕上),并且在屏幕顶部不显示,直到再次滚动,这怎么解决?

感谢

+0

嗨,我的答案是否解决了这个问题? – ggdx 2014-11-05 08:47:23

+0

@ dwhite.me不,我很抱歉打破了我的粘头,我不知道你是否在代码中丢失了一些括号或者东西,但是最后看起来像是一对多的右括号,请你确认一下吗?谢谢 – Adrian 2014-11-05 13:46:31

回答

2

1 - 闪烁 - 似乎罚款在Firefox上,需要对这个问题的详细信息。

2 - 文档加载丢失标题thingy - 您完全依靠滚动,因此需要在滚动条之外进行此操作。

$(function() { 
    stickyHeader(); 

}) 
$(window).scroll(function() { 
    stickyHeader(); 
}) 
function stickyHeader(){ 
    if ($(document).scrollTop() > 230){ 
     $('header').addClass("sticky"); 
     $('#headerwrapper').removeClass(); 
    }else{ 
     $('header').removeClass("sticky"); 
     $('#headerwrapper').addClass("headerwrapper"); 

    } 
} 
+0

最后2行需要修改: '}); }' 至: '} }); ' 谢谢你的时间。 – Adrian 2014-11-05 13:51:01

+0

对不起,复制并编辑了你的文章,已经晚了! – ggdx 2014-11-05 17:16:50