2012-08-28 18 views
5

Si un elemento puede ser visto por el ser humano, con todos los siguientes deben ser verdaderas:Detectar si un elemento es realmente visible

Sin embargo, estos no cubren todos los casos. Por ejemplo, un caso fácil que puedo pensar es, si un elemento cae fuera de una de las áreas visibles de sus antepasados ​​y ese antepasado tiene un estilo overflow: hidden, entonces el elemento no se puede ver.

Cualquier plugin de ejemplos/jQuery existentes/etc. que cubren la mayoría (si no todas) de las posibilidades?

+4

¿Cuál es el problema real que está tryi ng para resolver? ¿Qué haces diferente si un objeto es visible o no? – jfriend00

+1

¿Qué pasa con un objeto visible que cubre por completo el objetivo? ¿Lo consideras visible entonces? – nneonneo

+0

He tratado de encontrar una solución para este mismo problema en el pasado, pero he fallado. El problema que quería resolver era comenzar una animación cuando un elemento canvas de HTML5 estaba "expuesto". Lo "arreglé" simplemente haciendo un bucle en la animación. – Adam

Respuesta

2

Es imposible detectar si un elemento puede ser visto por un ser humano o no. Éstos son algunos más casos que no se puede cubrir:

  1. otra pestaña del navegador está abierto
  2. otra aplicación oculta la ventana del navegador
  3. el monitor se apaga
  4. el usuario ha cerrado sus ojos. etc ..

[fin de ironía]

+1

o si el elemento tiene un estilo como 'left: -999px' –

+2

o el posicionamiento apila múltiples elementos uno encima del otro con el mismo índice z –

Cuestiones relacionadas