¿"Inspeccionar" un elemento flotante?

100

Nota: He leído hilos similares, pero ninguno es mi problema: puedo hacer clic con el botón derecho en él, y luego desaparece.

Encuentro que "Inspeccionar elemento" es una herramienta invaluable en Chrome, sin embargo, mi última incursión a medida que aprendo las formas mágicas que muchos de ustedes ya poseen me vio creando un submenú para un elemento en mi barra de navegación, que aparece debajo al pasar el mouse sobre su artículo principal.

La ventana emergente (o abajo) no tiene el estilo que me gustaría, así que hago clic con el botón derecho> inspeccionar el elemento para ver qué viene exactamente de dónde, y tener una mejor idea de cómo lograr el efecto deseado.

Sin embargo, tan pronto como muevo el mouse fuera del menú, desaparece.

Entonces no puedo seleccionar diferentes elementos en el panel de inspección y ver qué área está resaltada al mismo tiempo.

¿Hay alguna forma de evitar esto, sin cambiar el menú para que permanezca "emergente" una vez activado?

OJFord
fuente
2
En situaciones como esta, suelo utilizar la consola para realizar una modificación temporal en la página, como eliminar el mouseleaveevento del menú principal. El submenú debería permanecer abierto incluso después de que mueva el mouse fuera del menú principal.
jbabey
Chrome admite esto ahora. Seleccione el elemento de la interfaz de usuario (por ejemplo, una etiqueta)> Inspeccionar elemento> Pestaña de estilos, junto al cuadro de filtro hay una sección ": hov". Pinchalo. Ahora puede seleccionar la casilla de verificación de desplazamiento y ver qué estilos se cargan al desplazarse.
Dhanuka777

Respuestas:

69

Si el hoverefecto se da con, CSSentonces sí, normalmente uso dos opciones para obtener esto:

Uno, a seela hover effectcuando el ratón deje el hover area:
Abra el inspector de ventana acoplada y aumentar el ancho hasta llegar a su HTML element, a continuación, haga clic derecho y en el menú emergente debe estar sobre la zona inspector ... entonces cuando se mueve el puntero del ratón sobre la vista inspector , el hover effectmantener activado en el documento.

ingrese la descripción de la imagen aquí

Dos, para keepel hover effect, incluso si el ratón no está sobre el HTML element, abra el inspector, vaya a Styles TABy haga clic en el icono de la parte superior derecha que dice Toggle Element State... (rectángulo punteado con una flecha) allí se puede activar manualmente el Hover Event(entre otros) con el casilla de verificación proporcionada.

ingrese la descripción de la imagen aquí

Si no está claro, avíseme y puedo agregar algunas capturas de pantalla. Editado : captura de pantalla agregada.

Y finalmente y como digo al principio, solo podré hacer esto si el hoverestá configurado con CSS:HOVER... cuando controlas el hover statecon jQuery.onMouseOverpor ejemplo, solo funciona (a veces), el método Uno.

Espero eso ayude.

gmo
fuente
4
Su primera solución es una buena solución alternativa, y tengo una manera de mejorarla: haga clic con el botón derecho en el elemento flotante, mueva el mouse completamente a la "zona del inspector", y luego navegue con las teclas del teclado y presione enter en "inspeccionar elemento ". El elemento se mantendrá suspendido. En cuanto a su segunda solución, sí, esa (o usar el menú contextual :hover) obviamente debería haber sido la solución correcta, pero desafortunadamente esto no ha funcionado en Chrome / Firefox desde que tengo memoria ...
Gilad Barner
Estaba acostumbrado a hacer esto en Windows, pero en Mac este truco no funciona, ¿alguien ha encontrado una manera de hacerlo en una Mac? parece que "comunica" los eventos de movimiento del mouse a la ventana incluso si el mouse está en el inspector o en el submenú
santiago arizti
@GiladBarner gracias por el atajo ofrecido, funcionó para mí. No sé si esto es solo un problema en mi PC o no, pero no puedo ver la opción de menú seleccionada a través del teclado y la tecla de método abreviado (ctrl-shift-I) no funciona mientras el menú desplegable está visible , así que como inspeccionar elemento es la última opción en el menú desplegable, usé la tecla de flecha hacia arriba para pasar al último elemento y presionar enter, y funcionó.
Bill Hileman
Parece que en este momento la :hoveropción está en la opción Alternar clases
Sagnik Pradhan
150

Si JS activa el hover, simplemente pause la ejecución del script a través del teclado. Esta es una forma mucho más simple de congelar el DOM de lo que sugieren las otras respuestas.

Así es como se hace en Chrome. Estoy seguro de que Firefox tiene un procedimiento equivalente:

  1. Abra Herramientas de desarrollo y vaya a Fuentes.
  2. Tenga en cuenta el acceso directo para pausar la ejecución del script— F8.

    Pausar la ejecución del script

  3. Interactúe con la interfaz de usuario para que aparezca el elemento.

  4. Hit F8.
  5. Ahora puede mover el mouse, inspeccionar el DOM, lo que sea. El elemento permanecerá allí.
mxxk
fuente
3
Los otros métodos que se ofrecen aquí no funcionan en muchos contextos en los que esto sí.
Ed Staub
Perfecto. Por alguna razón, F8 no funcionó antes de encontrar esta publicación. Ahora lo intenté de nuevo en la misma página que estoy diagnosticando y funcionó. (cwl)
Drew
2
Increíble. Creo que esta es la mejor forma.
Varun Mehta
1
para Safari es la Debuggerpestaña
user2661518
6
No funcionó para mí. Después F8, la pantalla se congela y no puede seleccionar ningún elemento. Mi solución es presionar F8, cambiar a la Elementspestaña, luego buscar las palabras que están en el elemento flotante.
AngryHacker
32

Lo que funcionó para mí fue seleccionar la etiqueta específica a que quería inspeccionar y hacer esto:

ingrese la descripción de la imagen aquí

Después de hacer lo anterior, normalmente volvería a seleccionar una etiqueta, luego el menú desplegable permanecerá automáticamente como está incluso cuando pase el mouse sobre otros lugares como Inspeccionar elemento, etc.

Puede simplemente actualizar el navegador al inspeccionar los elementos desplegables del menú para volver al estado normal.

Espero que esto ayude. :)

Woppi
fuente
5
Genio :). Esto permite inspeccionar los hovers revelados por javascript.
ElwoodP
1
nicee funcionó mejor que la respuesta original para mí.
Victor
14

También puede hacer esto en la consola de JavaScript:

$('#foo').trigger('mouseover');

Un que "congelará" el elemento en el estado "hover".

pixelearth
fuente
7

Así es como lo hago sin cambios de CSS o JS en pausa en Chrome (estoy en una Mac y no tengo una PC frente a mí si está ejecutando en Win):

  1. tenga su consola de desarrollador abierta.
  2. todavía no habilite la herramienta de inspección de desplazamiento, sino que abra el submenú deseado moviendo el mouse sobre él.
  3. presione Command+ Shift+ C(Mac) o Ctrl+ Shift+ C(Win / Linux)

ahora la herramienta de inspección de desplazamiento se aplicará a los elementos que ha abierto en su navegación secundaria.

Josh
fuente
4

No estoy seguro de si estaba presente en revisiones anteriores del navegador, pero acabo de descubrir este método extremadamente simple.

Abra el inspector en Chrome o Firefox, haga clic con el botón derecho en el elemento que le interesa y seleccione la opción adecuada (en este caso: hover). Esto activará el CSS asociado.

Abriendo el menú en cromo Abriendo el mismo menú en Firefox

Capturas de pantalla de Firefox 55 y chromium 61.

MayeulC
fuente
2

¡Excelente material!

Gracias a gmo por ese consejo. No sabía acerca de esos ajustes de atributos de gran ayuda.

Como una pequeña revisión de la redacción, explicaría ese proceso de la siguiente manera:

  • Haga clic derecho en el elemento que le gustaría diseñar

    • Abra la herramienta 'Inspeccionar'

    • En el lado derecho, navegue hasta la pequeña pestaña Estilos

    • Encontrado arriba del contenido de la hoja de estilo CSS

    • Seleccione la opción .hov: esto le dará todas las configuraciones disponibles para el elemento HTML seleccionado

    • Haga clic y cambie todas las opciones para que estén inactivas

    • Ahora seleccione el estado que le gustaría modificar: al activar cualquiera de estos, su hoja de estilo lo llevará directamente a esas configuraciones:

Estilos - Ajustar filtros - Elementos interactivos

Esta información fue un salvavidas para mí, ¡no puedo creer que me acabo de enterar!

Dan Haddock
fuente
¡Esta era la mejor forma para Chrome!
batir el
1
Genial, ¿te resultó útil mi respuesta?
Dan Haddock
0

cambiar el CSS para que la propiedad que oculta el menú no se aplique mientras trabaja en él es lo que hago.

Leñoso
fuente
Oh, vamos amigo, dije específicamente sin hacer tal modificación.
OJFord
dijiste para que no "permanezca emergente una vez activado". Sugiero que elimines todos los activadores de activación para que siempre esté visible. Esa es la forma en que hago todos los menús emergentes, de lo contrario, es un mundo de dolor. pero noquearse :)
Woody
0

Necesitaba hacer esto, pero el elemento que estaba tratando de inspeccionar se agregó y eliminó dinámicamente en función del estado de desplazamiento de otro elemento. Mi solución es similar a esta. , pero no funcionó para mí.

Así que esto es lo que hice:

  1. Agregue un script simple para ingresar al modo de depuración sobre mouseoverel elemento que desencadena el evento de desplazamiento que le preocupa.
$(document).on('mouseover', '[your-hover-element-selector]', function(e) {
  debugger;
});
  1. Luego, con la consola de desarrollo abierta en Chrome, coloque el cursor sobre su elemento y entrará en el modo de depuración. Navegue hasta la sección de fuentes de las herramientas de desarrollo y haga clic en el botón "Reanudar ejecución del script" (el botón azul similar a reproducir a continuación).

ingrese la descripción de la imagen aquí

Una vez que haga eso, su DOM se pausará en el estado de desplazamiento, y puede usar el inspector de elementos para inspeccionar todos los elementos tal como existen en ese estado.

tddrmllr
fuente