Javascript 如何修复此固定导航栏淡入
我有一个固定的导航栏。我希望初始菜单不会仅在您将页面滚动到某个位置后显示。我做了一个工作,但当我卷回顶部时,菜单上没有显示首字母。我将css中的类定义为display none。你能帮我做这个吗?提前通知我Javascript 如何修复此固定导航栏淡入,javascript,jquery,html,Javascript,Jquery,Html,我有一个固定的导航栏。我希望初始菜单不会仅在您将页面滚动到某个位置后显示。我做了一个工作,但当我卷回顶部时,菜单上没有显示首字母。我将css中的类定义为display none。你能帮我做这个吗?提前通知我 $(function(){ var menu = $('#menu'), pos = menu.offset(); $(window).scroll(function(){ if($(this).scrollTop() &g
$(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');
});
}
});
});
$(函数(){
变量菜单=$(“#菜单”),
pos=菜单偏移量();
$(窗口)。滚动(函数(){
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()else if($(this).scrollTop()发生这种情况的原因是这一行
$(this).removeClass('fixed').addClass('default').fadeIn('fast');
添加类“default”后,使用fadeIn函数。jQuery检测到fadeIn效果应用于具有display:none
的元素,并向该div添加一个新的CSS样式,即display:block
有两种方法可以解决这个问题
Jquery方式
改变
$(this).removeClass('fixed').addClass('default').fadeIn('fast');
TO
$(this).removeClass('fixed').addClass('default');
CSS方式
在.default类中更改以下行
display:none;
TO
display:none !important;
您必须修改其他循环,如下所示(要使用淡出
):
fadeIn
通过将匹配元素淡入不透明来显示匹配元素,而fadeOut
通过将匹配元素淡入透明来隐藏匹配元素
else if($(this).scrollTop() <= pos.top && menu.hasClass('fixed')){
menu.fadeOut('fast', function(){
$(this).removeClass('fixed').addClass('default').fadeOut('fast');
});
else if($(this).scrollTop()只需删除最后一个fadeIn()
else if($(this).scrollTop() <= pos.top && menu.hasClass('fixed')){
menu.fadeOut('fast', function(){
$(this).removeClass('fixed').addClass('default').fadeOut('fast');
});