我的网页有问题。 我有4个div,它们应该在淡出之后逐渐消失。我使用的代码是:
$('.btn').click(function(){
$('#box3').delay(5000).fadeOut('slow', function(){
$('#box4').fadeIn('slow');
});
});
#box1> #box2它的工作原理,#box2> #box3它有效但当我尝试从#box3> #box4有时#box3淡出然后用#box4淡入。我不知道为什么会这样做。
谢谢,
http://jsfiddle.net/chLRa/4/现在正在工作。有时当从3到4时它仍然在3和4中消失
答案 0 :(得分:4)
这是一个简单的帮助函数,可以帮助您完成此任务。
function fade(thisIn, callback){
boxes.not(thisIn).filter(':visible').delay(5000).fadeOut('slow', function(){
thisIn.fadeIn('slow', callback);
});
}
答案 1 :(得分:2)
我想尝试使用finish()方法:
$('.btn').click(function(){
$('#box3').finish().delay(5000).fadeOut('slow', function(){
$('#box4').fadeIn('slow');
});
});
在延迟()
之后使用它可能会更好答案 2 :(得分:0)
使用这些方法的回调版本可能会更好:
$('.btn').click(function(){
$('#box1').fadeOut('slow', function() {
$('#box2').fadeIn('slow', function() {
$('#box2').fadeOut('slow', function() {
$('#box3').fadeIn('slow', function() {
$('#box3').fadeOut('slow', function() {
$('#box4').fadeIn('slow', function() {
$('#box4').fadeOut('slow');
});
});
});
});
});
});
});
答案 3 :(得分:0)
jQuery官方文档说,第二个参数不是回调,而是缓和风格。
http://api.jquery.com/fadeIn/#fadeIn-duration-easing-complete http://api.jquery.com/fadeOut/#fadeOut-duration-easing-complete
$('#el').fadeOut(750,'swing',function(){
$('#el').fadeIn();
});
所以只需将你的回调移到第三个参数,一切都会有效。