Ci sono un paio di modi in cui potrei fare questo (che io sappia).Qual è il modo migliore per testare un elemento nel DOM
test CSS display
if ($('#foo').css('display') == 'none')
prova la visibilità
if ($('#foo').is(':visible'))
Nel visibilità posso controllare se l'elemento è lì.
Gli elementi sono considerati visibili se occupano spazio nel documento. Gli elementi visibili hanno una larghezza o un'altezza maggiore di zero.
Elementi con visibilità: nascosti o opacità: 0 sono considerati visibili, poiché occupano ancora spazio nel layout.
Ma, si noti che in entrambi non riesco a testare la visibilità (da parte dell'utente) perché:
Nascondere un elemento può essere fatto impostando la proprietà display per "none" o la proprietà visibility a "hidden". Tuttavia, si noti che questi due metodi producono risultati diversi:
visibilità: nascosto nasconde un elemento, ma ci vorrà ancora lo stesso spazio di prima. L'elemento sarà nascosto, ma continuerà a influire sul layout .
display: nessuno nasconde un elemento e non occupa spazio. L'elemento sarà nascosto, e verrà visualizzata la pagina come se l'elemento non c'è:
Quindi, in nessuno degli esempi che testare se l'elemento è visibile in tutti i sensi per l'utente.
Quindi la mia domanda è:
- Che cosa le differenze tra i due, se di codici di cui sopra?
- Qual è il modo migliore per verificare se un elemento è visibile all'utente:
avrei dovuto usare qualcosa come:
if ($('#foo').is(':visible') &&
$('#foo').css('opacity') > 0 &&
$('#foo').css('visibility') != 'hidden')
Hai provato che l'ultimo blocco di codice per vedere se funziona? –
** 1. ** Qual è il modo migliore per verificare se un elemento è visibile all'utente? >> '$ ('# foo'). is (': visible')' è il modo migliore per verificare se l'elemento è visibile all'utente (significato visualizzato) ** 2. ** Quali sono le differenze tra due se i codici dall'alto? >> Hai citato la differenza tra, 'visible' e' display'. Allora, qual è la tua domanda? –
Che dire di un elemento che è perfettamente visibile ma ha un altro elemento posizionato sopra di esso tramite 'z-index'? Cosa succede se questo div più in alto ha uno sfondo opaco? O trasparente? O uno * parzialmente * trasparente? L'elemento "sotto" è considerato visibile? – Jon