我有一组4个div,我正在寻找使用jQuery来动画它们一次,然后延迟使用delay(),然后运行另一组动画,让div恢复到原来的配置。下面是我的代码:jQuery:在一组div上有延迟的多个动画
//only selectors called 'option1' are affected by delay, and not 'option1 img' or 'option2'
$("#option1").showOption1().delay(3000).hideOption1();
//if i don't attach to #option1, delay doesn't work, but the animations that need to happen simultaneously work
$(document).showOption1().delay(3000).hideOption1();
jQuery.fn.showOption1 = function(){
$("#option2, #option3, #leftColumn").fadeOut(1000);
$("#option1").css("zIndex", "5");
$("#option1").animate({
left: "370px",
}, 1500);
$("#option1 img").animate({
width: "500px",
}, 1500, function(){
$("p.optionText").text('hello');
});
return this;
}
jQuery.fn.hideOption1 = function(){
$("#option1 img").animate({
width: "175px",
}, 1500);
$("#option1").animate({
left: "743px",
}, 1500);
$("#option2, #option3, #leftColumn").fadeIn(2000);
$("#option1").css("zIndex", "1");
return this;
}
我试着运行这两个功能的两种方式,对2线和5线2的情况下观看到showOption1()会运行良好,但随后只有
$("#option1").animate({
left: "743px",
}, 1500);
将在延迟后从hideOption1()中工作。 hideOption1()的其余部分在showOption1()完成后立即触发,忽略延迟。另一方面,如果我运行第5行,hideOption1()中的所有代码将根据需要同时运行,但会完全忽略延迟,在showOption1()完成后立即运行。如何在延迟后同时运行hideOption1()中的所有代码?
非常感谢!
首先,谢谢你看这个! 我改变了.fadeOut()和.animate()次是相同的;这是我的错误。 我有我的功能,如你第一次建议,但我然后选择将它们附加到jQuery,以便我可以利用链接,并在延迟()之间的命令(可能使用回调函数)。所以你不认为我可以使用delay()来影响多个选择器?我可以返回多个选择器(如返回这个,返回#option2等)? – Waleed 2010-05-16 19:47:58
另外,你能澄清你的意思吗?“或者,让选择器匹配(这个)实际使用,通过类隐藏其他选项,例如”? – Waleed 2010-05-16 19:48:34