【发布时间】:2011-01-16 10:00:48
【问题描述】:
使用fadeIn 和fadeOut 时的正常行为是使用the display property。但是,这会改变页面的布局。
如何让fadeIn和fadeOut不修改页面布局?
【问题讨论】:
使用fadeIn 和fadeOut 时的正常行为是使用the display property。但是,这会改变页面的布局。
如何让fadeIn和fadeOut不修改页面布局?
【问题讨论】:
结合使用上述答案,这对我来说效果很好。 您可以根据自己的喜好更改动画时间。
致fadeIn:
$('selector').animate({opacity:1, visibility:'visible'}, 200);
致fadeOut:
$('selector').animate({opacity:0, visibility:'hidden'}, 200);
确保在开始时设置visibilty:'hidden'和opacity:0以避免默认显示隐藏时在第一次淡入时突然弹出,否则无关紧要。
$('selector').css({opacity:0, visibility:'hidden'});
【讨论】:
还有
你可以用.animate({opacity:1})代替.fadeIn()
而不是.fadeOut() 你可以.animate({opacity:0})
【讨论】:
visibility: hidden,事件不被触发。
visibility:hidden,通过callback参数来满足这两个需求)
感谢 10gler 我下面的解决方案,使用可见性来防止不可见的按钮点击等。
//fadeIn
$("#x")
.css('visibility', 'visible')
.fadeTo('fast', 1);
//fadeOut
$("#x")
.fadeTo('fast', 0, function() {
$(this).css('visibility', 'hidden');
});
【讨论】:
你可以试试这个fadeOut:
$("something here").fadeOut("slow", function() {
$(this).show().css({visibility: "hidden"});
});
...这是fadeIn:
$("something here").hide().css({visibility: "visible"}).fadeIn("slow");
【讨论】: