我有一个固定的导航栏。我希望仅在将页面滚动到某个位置后才显示初始菜单。我没有做过工作,但是当我向后滚动时,没有显示初始菜单。我在css中将该类定义为不显示。你能帮我吗?提前thnx。
$(function(){
var menu = $('#menu'),
pos = menu.offset();
$(window).scroll(function(){
if($(this).scrollTop() > pos.top+menu.height() && menu.hasClass('default')){
menu.fadeOut('fast', function(){
$(this).removeClass('default').addClass('fixed').fadeIn('fast');
});
} else if($(this).scrollTop() <= pos.top && menu.hasClass('fixed')){
menu.fadeOut('fast', function(){
$(this).removeClass('fixed').addClass('default').fadeIn('fast');
});
}
});
});
http://jsfiddle.net/VjfHg/
编辑:嘿,感谢您的所有答复,所有的都在工作,对不起,如果我要加粗,但是您能帮助我将其显示到某个位置吗?比如说您滚动500px然后在相同位置淡出?:)
最佳答案
您必须像下面那样修改else
循环(才能使用fadeOut
):fadeIn
通过将匹配的元素淡化为不透明来显示匹配的元素,而fadeOut
通过将它们的淡化为透明来隐藏匹配的元素。
else if($(this).scrollTop() <= pos.top && menu.hasClass('fixed')){
menu.fadeOut('fast', function(){
$(this).removeClass('fixed').addClass('default').fadeOut('fast');
});
Working Demo
编辑:Updated Working Demo基于问题中的更改。
关于javascript - 如何修复此固定的导航栏淡入,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18629755/