2012-10-13 30 views
1

我有两个图像滑出,然后我希望mycontent div在图像消失后淡入。动画作品和被调用只是不延迟部分:(jQuery:为什么我的延迟不起作用?

任何想法为什么不起作用?

function mepage(){ 
var ele = document.getElementById("btn2"); 
var ele = document.getElementById("btn3"); 
var mycont = document.getElementById("mycontent"); 
if(ele.style.display == "inline-block") { 
    $("#btn2").slideUp(1000); 
    $("#btn3").slideUp(1000); 
    $("#mecontent").delay(1000).css("visibility","visible").fadeIn(400); 

} 
else { 
    $("#btn2").slideDown(1000); 
    $("#btn3").slideDown(1000); 
    $("#mecontent").css("visibility","hidden"); 
    ele.style.display = "inline-block"; 
} 

}

谢谢:)

回答

3

.css功能不要放在动画队列,所以它会立即发生。请参阅this answer以获取可让您排队的插件。

这就是说,它只是为了更好地使用“完成”功能,并使用.show().hide()改变元素的可见性:

if ($(ele).is(':visible')) { 
    $("#btn2,#btn3").slideUp(1000, function() { 
     $("#mecontent").delay(1000).fadeIn(400); 
    }); 
} else { 
    $("#btn2,#btn3").slideDown(1000, function() { 
     $("#mecontent").hide(); 
    }); 
} 
3

很少功能queud by jQuery和css不在其中。

你可以这样做:

$("#btn2").slideUp(1000); 
$("#btn3").slideUp(1000, function() { 
    $("#mecontent").css("visibility","visible").fadeIn(400); 
}); 

,或者因为我不知道你为什么改变了淡入之前的知名度:

$("#btn2").slideUp(1000); 
$("#btn3").slideUp(1000, function() { 
    $("#mecontent").fadeIn(400); 
}); 
+0

你的代码是正确的,但你的解释是不正确的。 – jfriend00

+0

现在fadeIn不起作用 – Aaron