Quando il mouse passa con il passare del mouse su un elemento a causa dello scorrimento (tramite rotella o scorrimento della tastiera), non attiva un evento mouseover sugli elementi che sta passando (Chrome 6 su OSX). Quale sarebbe un modo elegante per attivare l'evento mouseover per gli elementi corretti durante lo scorrimento?Come posso creare eventi di passaggio del mouse sullo scorrimento della pagina?
6
A
risposta
3
Onestamente, questo sarà un dolore. È necessario
- determinare la dimensione e la posizione di ogni elemento che dovrebbe ottenere un gestore di mouseover.
- aggiungere un listener di scorrimento alla finestra.
- Nel gestore, ottenere la posizione del cursore del mouse e pageOffset.
- Scopri quale elemento (s) il cursore si trova.
- chiamare manualmente il gestore mouseover attuale
- (Scopri quali elementi il cursore ha lasciato, se volete qualche comportamento mouseout troppo)
Potrebbe essere necessario ricalcolare le posizioni e le dimensioni degli elementi se sono dinamici. (sposta 1. sotto 3.)
Mentre questo dovrebbe funzionare bene con gli elementi a livello di blocco, non ho assolutamente idea di una soluzione per gli elementi in linea.
Ahi, questo è quello di cui ho paura. Se non c'è modo di sfruttare il browser per farlo (lo fa sempre, no?), Posso semplicemente saltare questa funzione ... comunque, sarebbe bello. –
Ovviamente, Chrome 6 non fa tutto il tempo - altrimenti l'evento mouseover potrebbe sparare;) – user123444555621