在我的页面中,我有一堆(大约30个)dom节点应该被添加为不可见,并在完全加载时淡入 .元素需要显示:内联块样式 .
我想使用jquery .fadeIn()函数 . 这要求元素最初有一个display:none;规则最初隐藏它 . 在fadeIn()之后,元素当然具有默认显示:inherit;
如何使用除继承之外的显示值的淡入淡出功能?
$("div").fadeIn().css("display","inline-block");
Makura的回答对我不起作用所以我的解决方案是
<div id="div" style="display: none">Some content</div> $('#div').css('display', 'inline-block').hide().fadeIn();
hide 立即应用 display: none 但在此之前它将当前显示值保存在jQuery数据缓存中,该缓存将由后续动画调用恢复 .
hide
display: none
所以 div 开始静态定义为 display: none . 然后它被设置为 inline-block 并立即隐藏,只是为了褪色回到 inline-block
div
inline-block
即使使用css预设的 display:none 也能正常工作 . 使用
display:none
$('#element').fadeIn().addClass('displaytype');
(还有 $('#element').fadeOut().removeClass('displaytype'); )
$('#element').fadeOut().removeClass('displaytype');
使用CSS中的设置:
#element.displaytype{display:inline-block;}
我认为这是一个解决方法,因为我认为 fadeIn() 应该工作,以便它只删除最后一条规则 - 设置为 #element{display:inline-block;display:none;} 时 display:none 但它正在故意删除两者 .
fadeIn()
#element{display:inline-block;display:none;}
根据jQuery docs为 .show() ,
.show()
如果元素的显示值为内联,则隐藏并显示,它将再次以内联方式显示 .
所以我对这个问题的解决方案是将css规则应用于类显示:元素上的inline-block,然后我添加了另一个名为"hide"的类,它应用了display:none;当我在元素上 .show() 时,它显示为内联 .
您可以使用jQuery的animate函数自行更改不透明度,使显示不受影响 .
只是为了充实Phil的好主意,这里有一个fadeIn(),它在每个元素中加载淡入淡出,类依次为.faded,转换为animate():
旧:
$(".faded").each(function(i) { $(this).delay(i * 300).fadeIn(); });
新:
$(".faded").each(function(i) { $(this).delay(i * 300).css('opacity',0).animate({'opacity': 1}, 500); });
希望能像我一样帮助另一个jQuery newb :)如果有更好的方法,请告诉我们!
6 回答
$("div").fadeIn().css("display","inline-block");
Makura的回答对我不起作用所以我的解决方案是
hide
立即应用display: none
但在此之前它将当前显示值保存在jQuery数据缓存中,该缓存将由后续动画调用恢复 .所以
div
开始静态定义为display: none
. 然后它被设置为inline-block
并立即隐藏,只是为了褪色回到inline-block
即使使用css预设的
display:none
也能正常工作 . 使用(还有
$('#element').fadeOut().removeClass('displaytype');
)使用CSS中的设置:
我认为这是一个解决方法,因为我认为
fadeIn()
应该工作,以便它只删除最后一条规则 - 设置为#element{display:inline-block;display:none;}
时display:none
但它正在故意删除两者 .根据jQuery docs为
.show()
,所以我对这个问题的解决方案是将css规则应用于类显示:元素上的inline-block,然后我添加了另一个名为"hide"的类,它应用了display:none;当我在元素上
.show()
时,它显示为内联 .您可以使用jQuery的animate函数自行更改不透明度,使显示不受影响 .
只是为了充实Phil的好主意,这里有一个fadeIn(),它在每个元素中加载淡入淡出,类依次为.faded,转换为animate():
旧:
新:
希望能像我一样帮助另一个jQuery newb :)如果有更好的方法,请告诉我们!