2010-07-25 12 views
3

Comment vérifier si un élément est masqué à la fois. c'est-à-dire comment notifier la visibilité d'un élément.Jquery vérifie si l'élément est masqué (en continu)

Dans mon cas, l'élément est fait pour cacher par la fonction slideUp. A la fois, je devrais être averti de la visibilité de cet élément. J'ai eu l'idée d'utiliser bind() méthode. Mais il n'a pas un onHide comme événement. Alors comment obtenir comme ça? toutes les suggestions seront utiles!

EDIT:

Je sais qu'il est possible d'utiliser is(':hidden') mais je veux vérifier comme en continu addEventListener

Répondre

7
if($('#selector').is(':visible')){ 
    //is visible 
}else{ 
    //is NOT visible threfore is hidden 
} 

EDIT si cela n'existe pas alors vous devrez vérifier l'opacité/propriété du filtre

ainsi

if($('#selector').css('opacity')!=0){ 
     //is visible//or partially visible//depends on opacity 
    }else{ 
     //is NOT visible threfore is hidden 
    } 

Assurez-vous également vérifier l'opacité navigateur croix

EDIT 2

function checkVisibility(){ 
    //put the visibility checker here 
    setTimeout('checkVisibility',1000)//every 1 second... 
} 

Note: que les répétitions comme cela pourrait ralentir le navigateur

+0

oui c'est bon, mais je veux le vérifier en permanence .. comment le vérifier? –

+0

utilisez setInterval ou setTimeout ... cocher Edit 2 dans une minute – Val

+0

Ne passez pas la chaîne, faites comme ceci: 'setTimeout (checkVisibility, 1000)'/ – Cipi

0

Vous pouvez utiliser le rappel de slideUp savoir à la fois quand l'élément est caché:

function theElementIsHidden() 
{ 
    //What to do when the slideUp animation (element hidden) is completed... 
} 

$("#element").slideUp(200, function(){theElementIsHidden();}