2013-03-29 6 views
5

C'è un modo per sapere se un elemento è visibile su una pagina html?Verifica se l'elemento può essere visto dall'utente su una pagina html

Ti piace questa:

enter image description here

Si può probabilmente farlo considerare le posizioni di scorrimento orizzontale/verticale, la larghezza/altezza della finestra del browser e la posizione/dimensione del elemento della pagina, ma Ho poca esperienza in jQuery quindi non so come farlo. E potrebbe esserci una semplice funzione che si può chiamare, non lo so.

+0

possibile duplicato di [Come verificare se un elemento è nella vista dell'utente con jquery] (http://stackoverflow.com/questions/8229291/how-to-check-if-an-element -è-in-the-view-of-the-user-with-jquery) – BenM

+2

http://stackoverflow.com/questions/8229291/how-to-check-if-an-element-is-in-the- view-of-the-user-con-jquery. Domanda ben fatta però. – nickhar

risposta

5

È possibile utilizzare i selettori .is(':visible') per verificare se un elemento è attualmente visibile nel DOM.

Edit:

Tuttavia, come @BenM detto, questo non verifica se gli elementi della pagina sono in realtà fuori della tua portata scorrevole - un piccolo grande plug-in si potrebbe usare in quel caso sarebbe Viewport Selectors for jQuery.

+0

No, non puoi. Questo definisce se è fisicamente visualizzato nel DOM, non se è visibile all'utente sul proprio schermo. Un elemento potrebbe essere visibile, ma fuori dall'intervallo di scorrimento. – BenM

+0

Sei completamente corretto, mi scuso, modifico ora. – lifetimes

0

Ecco un codice che uso per fare questo. È stato testato per funzionare alla grande.

function isVisible($obj) { 
    var top = $(window).scrollTop(); 
    var bottom = top + $(window).height(); 
    var objTop = $obj.offset().top; 
    var objBottom = objTop + $obj.height(); 

    if(objTop < bottom && objBottom > top) { 
     //some part of $obj is visible on the screen. 
     //does not consider left/right, only vertical. 
    } 
} 
Problemi correlati