¿Cómo puedo obtener las coordenadas de un elemento oculto? offset() no soporte el uso de elementos ocultos. Cualquier sugerencias?

  • trate de usar .la posición().X y y
  • posición desnt trabajo. yo uso una variable local para el almacenamiento .offset() antes era invisible.
  • De ninguna manera. El uso de soluciones a continuación. De acuerdo a sus metas, usted puede simplemente utilizar visibility:hidden lugar de display:none y vas a poder obtener la posición.
  • tienes razón , gracias
  • Me estoy riendo porque me ‘invertido’ última hora… (ahora parece obvio)
InformationsquelleAutor Simon | 2011-05-12

3 Comentarios

  1. 47

    Si el elemento ha tenido .hide() llamado a éste, o si tiene display:none en css, el navegador no molestar a la representación del todo. En este caso, la respuesta no es directa. En los últimos jQueries, usted no puede incluso conseguir su anchura o la altura.

    Por otro lado, si usted .show() un elemento, entonces .hide() antes de un bucle de ejecución (la activación de un evento a través de para cuando no hay más código a ejecutar para el evento), el navegador se verá forzado a relayout la página, y usted será capaz de obtener su desplazamiento entre el momento en que se muestra y oculta, pero no se ven obligadas a volver a pintar, por lo que los usuarios no verán un bache, y no perder tanto rendimiento como usted podría pensar.

    • Si este elemento es el que contiene más información, imágenes y otras cosas, pienso: SÍ, el usuario puede ver un molesto ‘blitz’ en varios navegadores.
    • Nope. Tal vez en los navegadores más antiguos, pero los navegadores modernos relayout pero que no se vuelva a pintar hasta que sea absolutamente necesario. He aquí una prueba que se corrió: pastie.org/1892044 y la línea de tiempo que Chrome Inspector dio como resultado: skitch.com/cxlt/r67h3/developer-tools-file-tmp-test.html Como se puede ver, tiene a disposición y recalcular los estilos, pero no repintar la pantalla hasta después de que ya está hecho el show(), la medida, y la hide().
    • Esto está bien, excepto que usted utiliza : <div class=»display:none»> Hm, ‘CLASE’… un error tipográfico? 😉
  2. 30

    Usted puede obtener coordenadas de visibility:hidden elemento pero display:none elemento está excluido de la representación de árbol. Por lo que su posición es indefinido.

    • Esto es en realidad la respuesta correcta. También, desde visibility:hidden ocupa espacio, también puede agregar position:absolute para el CSS de tu DIV, de este modo, sería verdaderamente invisible (ya que ya no ocupan ningún espacio de trabajo). Saludos.
    • No funciona para mí.
  3. 0

    Otros de rápido show & hacer cosas & ocultar -procedimiento, puede ser posible utilizar simplemente la carga de la máscara de pretender que la pantalla (o parte de ella) es invisible.

    Esto ocurrió cuando yo estaba trabajando en el mapa que había elementos ocultos. Yo necesitaba para obtener css-posiciones /compensaciones de leer sin mostrar los elementos. Yo me vine con tres posibles métodos a utilizar:

    • cargar máscara sobre el mapa por el momento, por lo que el mapa no mostrar elementos ocultos, y leer las compensaciones (problema: superposición oculta elemento primario (mapa) demasiado). Esto funciona mejor si no hay padre-elemento que requiere de la visualización.

    • cambio de índice z de los elementos que están ocultos, por lo que ellos van detrás de elemento primario, show & y leer valores, ocultar ‘em y el cambio de índice z original.

    • uso de datos por separado de las variables de CSS para los estilos, para que sean parte de un elemento. Esto funciona bien si los elementos fijos/posiciones absolutas contra la ventana o elemento determinado, desde css-posiciones /compensaciones no va a cambiar de acuerdo al tamaño de la ventana/elemento. Esto funcionó bien en mi caso, desde que estaba trabajando con elementos absoluta contra la ventana (pantalla completa/ventana de la aplicación).

    Otros métodos sugeridos por los usuarios trabajar demasiado, pero todo depende de lo que usted está trabajando.

Dejar respuesta

Please enter your comment!
Please enter your name here