现在,当我淡入我的覆盖层div时,它会自动设置为display:block;
。但是我希望它是display:table
。是否有类似于fadeIn()
的jQuery函数可以实现这一点?
jQuery
$.when($("#overlay").fadeIn(200)).done(function() {
setTimeout(function() {
//ToDo
});
}, 250);
现在,当我淡入我的覆盖层div时,它会自动设置为display:block;
。但是我希望它是display:table
。是否有类似于fadeIn()
的jQuery函数可以实现这一点?
jQuery
$.when($("#overlay").fadeIn(200)).done(function() {
setTimeout(function() {
//ToDo
});
}, 250);
$("#overlay").fadeIn(200).css('display','table');
在 fadeIn
后更改 CSS 属性。
在CSS或内联HTML中设置opacity: 0;
,然后运行此代码。您可以在运行之前已经设置了display: table;
。
如果您需要将display:none;
设置为默认值(以从DOM中删除所占用的空间等),请按照以下步骤操作:
$('#overlay').animate({opacity: 'toggle'}, {duration: 200, start: function() {
$(this).css('display', 'table');
}
});
opacity:0
是否等同于 display:none;
? - Abhitalksdisplay: none
放在动画中,只需在开始时编辑动画以将显示设置为表格即可。我会编辑答案,以便您可以看到它。 - DeryckfadeIn
已经做到了这一点。它首先取消隐藏元素。在 fadeIn
之后设置 CSS 不是更简单吗? - Abhitalksdisplay: block
切换到 display: table
可能会产生意想不到的副作用(可能在 IE 上闪烁/闪光)。但本质上它们是相同的。这是演示(现在不再需要了 哈哈)http://jsfiddle.net/tF3a4/2/ - Deryck与您的代码一起工作:
$.when($("#overlay").fadeIn(200).css("display", "table")).done(function() {
setTimeout(function() {
//ToDo
});
}, 250);
$("#overlay").css('display','table');
即可。 - Pranav C Balan