"Ispezionare" un elemento al passaggio del mouse?


101

Nota: ho letto thread simili, ma nessuno è un mio problema: posso fare clic con il pulsante destro del mouse su di esso bene, solo allora scompare.

Trovo "Inspect Element" uno strumento inestimabile in Chrome, tuttavia la mia ultima incursione mentre imparo i modi magici in cui molti di voi già possiedono mi ha visto creare un sottomenu per un elemento sulla mia barra di navigazione, che si apre sotto al passaggio del mouse articolo principale.

Il popup (o verso il basso) non è esattamente disegnato come vorrei, quindi faccio clic con il pulsante destro del mouse su> ispeziona l'elemento per vedere cosa proviene da dove esattamente e ho un'idea migliore di come ottenere l'effetto desiderato.

Tuttavia, non appena sposto il mouse lontano dal menu, non c'è più.

Quindi non posso selezionare diversi elementi nel riquadro di ispezione e vedere quale area è evidenziata allo stesso tempo.

C'è un modo per aggirare questo, senza cambiare il menu in modo che rimanga "saltato fuori" una volta attivato?


2
In situazioni come questa, di solito uso la console per apportare una modifica temporanea alla pagina, ad esempio rimuovere l' mouseleaveevento dal menu principale. Il sottomenu dovrebbe quindi rimanere aperto anche dopo aver spostato il mouse fuori dal menu principale.
jbabey

Chrome lo supporta ora. Seleziona l'elemento UI (ad es. Un tag)> Inspect Element> scheda Stili, accanto alla casella del filtro c'è una sezione ": hov". Cliccalo. Ora puoi selezionare la casella di controllo al passaggio del mouse e vedere quali stili vengono caricati al passaggio del mouse.
Dhanuka777

Risposte:


69

Se l' hovereffetto viene fornito con CSSsì, normalmente utilizzo due opzioni per ottenerlo:

Uno, per seeil hover effectquando il mouse lasciare il hover area:
Aprire la finestra di ispezione nella finestra ancorata e aumentare la larghezza fino a raggiungere la vostra HTML element, quindi fare clic destro e il menu a comparsa deve essere sopra la zona ispettore ... poi, quando si sposta il mouse sopra la vista ispettore , la hover effectconservazione attivata nel documento.

inserisci qui la descrizione dell'immagine

Due, per keepla hover effectanche se il mouse non è sopra il HTML element, aprire le impostazioni, andare a Styles TABe fare clic l'icona in alto a destra che dice Toggle Element State... (rettangolo punteggiato con una freccia) Ci si può attivare manualmente la Hover Event(tra gli altri) con il casella di controllo fornita.

inserisci qui la descrizione dell'immagine

Se non è del tutto chiaro, fammelo sapere e posso aggiungere alcuni screenshot. Modificato : screenshot aggiunto.

E infine, come ho detto all'inizio, posso farlo solo se hoverè impostato con CSS:HOVER... quando controlli hover statecon, jQuery.onMouseOverad esempio, funziona solo (a volte), il metodo Uno.

Spero che sia d'aiuto.


4
La tua prima soluzione è una buona soluzione alternativa e ho un modo per migliorarla: fai clic con il pulsante destro del mouse sull'elemento al passaggio del mouse, sposta il mouse completamente nella "zona di ispezione", quindi naviga con i tasti della tastiera e premi Invio su "ispeziona elemento ". L'elemento verrà mantenuto sospeso. Per quanto riguarda la tua seconda soluzione, sì, quella (o usare il menu contestuale :hover) avrebbe dovuto ovviamente essere la soluzione corretta, ma purtroppo questa non ha funzionato su Chrome / Firefox da quando ricordo ...
Gilad Barner

Ero abituato a farlo in Windows, ma su Mac questo trucco non funziona, qualcuno ha trovato un modo per farlo su un Mac? sembra che "comunichi" gli eventi di spostamento del mouse alla finestra anche se il mouse è nell'ispettore o nel sottomenu
santiago arizti

@GiladBarner grazie per la scorciatoia offerta, ha funzionato per me. Non so se questo è solo un problema sul mio PC o meno, ma non riesco a vedere l'opzione di menu selezionata tramite tastiera e il tasto di scelta rapida (ctrl-maiusc-I) non funziona mentre il menu a discesa è visibile , quindi poiché inspect element è l'ultima opzione nel menu a discesa, ho usato il tasto freccia su per avvolgere l'ultimo elemento e premere invio, e ha funzionato.
Bill Hileman

Sembra che al momento l' :hoveropzione sia in Toggle Classes Option
Sagnik Pradhan

151

Se il passaggio del mouse viene attivato da JS, metti in pausa l'esecuzione dello script tramite la tastiera. Questo è un modo molto più semplice di congelare il DOM rispetto a quanto suggeriscono le altre risposte.

Ecco come lo fai in Chrome. Sono sicuro che Firefox ha una procedura equivalente:

  1. Apri gli Strumenti per sviluppatori e vai su Fonti.
  2. Notare la scorciatoia per sospendere l'esecuzione dello script— F8.

    Metti in pausa l'esecuzione dello script

  3. Interagisci con l'interfaccia utente per far apparire l'elemento.

  4. Hit F8.
  5. Ora puoi spostare il mouse, ispezionare il DOM, qualunque cosa. L'elemento rimarrà lì.

3
Gli altri metodi qui offerti non funzionano in molti contesti in cui funziona.
Ed Staub

Perfetto. Per qualche motivo F8 non ha funzionato prima di trovare questo post. Ora l'ho provato di nuovo sulla stessa pagina che sto diagnosticando e ha funzionato. (cwl)
Drew

2
Eccezionale. Penso che questo sia il modo migliore.
Varun Mehta

1
per Safari it Debuggertab
user2661518

6
Non ha funzionato per me. Successivamente F8, lo schermo si blocca e non è possibile selezionare alcun elemento. La mia soluzione è premere F8, passare alla Elementsscheda, quindi cercare le parole che si trovano sull'elemento hover.
AngryHacker

32

Quello che ha funzionato per me è stato selezionare il tag specifico che volevo ispezionare e fare questo:

inserisci qui la descrizione dell'immagine

Dopo aver eseguito quanto sopra, selezionerei di nuovo normalmente un tag, quindi il menu a discesa rimarrà automaticamente così com'è anche quando passo il mouse su altri luoghi come Inspect Element, ecc.

Puoi semplicemente aggiornare il browser durante l'ispezione degli elementi del menu a discesa per tornare allo stato normale.

Spero che questo ti aiuti. :)


5
Genius :). Ciò consente di ispezionare i passaggi rilevati da javascript.
ElwoodP

1
bello, ha funzionato meglio della risposta originale per me.
Victor

14

Puoi farlo anche nella console javascript:

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

Un che "congelerà" l'elemento nello stato "hover".


7

Ecco come lo faccio senza modifiche CSS o JS in pausa in Chrome (sono su un Mac e non ho un PC davanti a me se stai utilizzando Win):

  1. tieni aperta la tua console per sviluppatori.
  2. non abilitare ancora lo strumento di ispezione al passaggio del mouse, ma apri invece il sottomenu desiderato spostandoci sopra il mouse.
  3. premi Command+ Shift+ C(Mac) o Ctrl+ Shift+ C(Win / Linux)

ora lo strumento di ispezione al passaggio del mouse si applicherà agli elementi che hai aperto nel tuo sub-nav.


4

Non sono sicuro che fosse presente nelle precedenti revisioni del browser, ma ho appena scoperto questo metodo estremamente semplice.

Apri l'ispettore in Chrome o Firefox, fai clic con il pulsante destro del mouse sull'elemento che ti interessa e seleziona l'opzione appropriata (in questo caso: hover). Questo attiverà il CSS associato.

Apertura del menu in cromo Apertura dello stesso menu in Firefox

Screenshot di Firefox 55 e chromium 61.


2

Roba eccellente!

Grazie a OGM per questo consiglio. Non sapevo che quelle impostazioni degli attributi fossero di enorme aiuto.

Come piccola revisione della formulazione, spiegherei questo processo come segue:

  • Fare clic con il pulsante destro del mouse sull'elemento a cui si desidera applicare lo stile

    • Apri lo strumento "Ispeziona"

    • Sul lato destro, vai alla piccola scheda Stili

    • Trovato sopra il contenuto del foglio di stile CSS

    • Seleziona l'opzione .hov - Questo ti darà tutte le impostazioni disponibili per l'elemento HTML selezionato

    • Fare clic su e modificare tutte le opzioni per essere inattive

    • Ora seleziona lo stato che desideri modificare: all'attivazione di uno di questi, il tuo foglio di stile ti porterà direttamente a quelle impostazioni:

Stili - Modifica dei filtri - Elementi interattivi

Questa informazione è stata un salvavita per me, non posso credere di averne appena sentito parlare!


Questo era il modo migliore per Chrome!
frusta il

1
Fantastico, la mia risposta ti è stata utile?
Dan Haddock

0

cambia il CSS in modo che la proprietà che nasconde il menu non venga applicata mentre ci lavori è quello che faccio io.


Oh andiamo, amico, l'ho detto specificamente senza apportare una tale modifica.
OJFord

hai detto che non "rimane visualizzato una volta attivato". Suggerisco di rimuovere tutti i trigger di attivazione in modo che sia sempre visibile. questo è il modo in cui faccio tutti i menu a comparsa, altrimenti è un mondo di dolore. ma buttati fuori :)
Woody

0

Avevo bisogno di farlo, ma l'elemento che stavo cercando di ispezionare è stato aggiunto e rimosso dinamicamente in base allo stato al passaggio del mouse di un altro elemento. La mia soluzione è simile a questa , ma non ha funzionato per me.

Quindi ecco cosa ho fatto:

  1. Aggiungi un semplice script per accedere alla modalità debugger mouseoversull'elemento che attiva l'evento hover che ti preoccupa.
$(document).on('mouseover', '[your-hover-element-selector]', function(e) {
  debugger;
});
  1. Quindi, con la console di sviluppo aperta in Chrome, passa il mouse sul tuo elemento e accederai alla modalità debugger. Passa alla sezione delle fonti degli strumenti di sviluppo e fai clic sul pulsante "Riprendi l'esecuzione dello script" (il pulsante blu simile alla riproduzione sotto).

inserisci qui la descrizione dell'immagine

Una volta che lo fai, il tuo DOM verrà messo in pausa nello stato al passaggio del mouse e puoi utilizzare l'ispettore degli elementi per ispezionare tutti gli elementi così come esistono in quello stato.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.