2011-08-22 73 views
0

基本上我试图淡入或淡出<div id="speech-bubble-sun"><div id="speech-bubble-dark">,这取决于动画淡化分区<div id="headlights">的可见性。所以here is what I have so farif-statment暗淡淡入淡出

我在整个函数中以不同的时间间隔调用if语句,它现在可以工作!

但是,一旦该函数再次被调用(在循环中),if语句就停止工作。

+0

可能的重复:http://stackoverflow.com/questions/7121144/jquery-javascript-if-statement-with-css-values – tw16

回答

1

“if”测试工作正常。

“fadein”和“fadeout”是从你自己的代码异步完成的。即当“headlights”div淡入/淡出时,您自己的代码将继续执行。

当“淡入淡出”完成时,“headlights”div被设置为“隐藏”(不可见),但是几分之一毫秒后,它会变淡,随着淡入淡出。

因此,超过99%的时间可以看到,而只有不到1%的时间(从“淡出”完成到“淡入淡出”开始之前的精确时刻),它将被隐藏,所以你几乎总是会看到“讲话泡泡太阳”,而不是“讲话泡泡黑暗”。你不会在这两个div之间打乒乓球。

+0

刚刚在fadeIn中加了一个延迟5秒,所以它隐藏了更长的时间,仍然没有响应。 http://jsfiddle.net/lexbi/hWvJ4/44/ – joe

+0

在您最新的jsfiddle中,由于动画的异步性质,“可见”的3个测试将始终为FALSE。在“bubbletest”代码的开头添加一个“alert”,你会看到,或者更好的使用Firefox下的Firebug来设置断点并检查DIV的属性。问候 – Neil

+0

乔,你最好添加和删除一个类[例如$('#headlights')。addClass('visible')]当你在fadeIn和fadeOut之后为“headlights”div,然后测试那个类[e,g,if($('#headlights')。hasClass('可见')],而不是试图通过查看“可见性”属性来做到这一点 – Neil