2010-12-16 173 views
1

Comment testez-vous si un div a une opacité = 0?jQuery conditionnel pour l'opacité?

J'ai essayé:

if (jQuery("#slideshow div#prev").css({opacity: 0})) 
    { 
jQuery("#slideshow div#prev").animate({opacity: 1.0}, 500); 
    } 

mais il semble tirer de l'animation même si l'opacité est déjà 1.0?

+0

Puisque "prev" est déjà un ID, la seule chose dont vous avez besoin dans le sélecteur est "#prev" –

Répondre

5

Utilisation css('opacity'):

if (!jQuery("#slideshow div#prev").css('opacity')) { 
    jQuery("#slideshow div#prev").animate({opacity: 1.0}, 500); 
} 

Ce code vérifie si la valeur de retour de .css('opacity') est falsy, si elle est, alors soit le CSS n'a pas été défini ou la valeur elle-même est falsy, auquel cas vous souhaitez souhaitez continuer et exécuter l'appel animate.

1

La syntaxe correcte serait

if (!jQuery("#slideshow div#prev").css('opacity')) 
    { 
     jQuery("#slideshow div#prev").animate({opacity: 1.0}, 500); 
    } 

css ('opacité') retournera 0 et l'état si() est devenu vrai.

+1

Votre condition est complètement faux. '0 == false', donc cette condition serait' false' si l'opacité est '0'. Donc, ce code aurait mis l'opacité à '1' seulement quand il est déjà' 1'? WTF –

+0

désolé pour cela, ont corrigé le code. – Tarun