Come funziona
intent-link osserva come l’utente si muove nella pagina e stima a quale obiettivo visibile si sta avvicinando. Quando il segnale è abbastanza forte, chiama la funzione onIntent di quell’obiettivo.
1 · Osserva il movimento
Sul desktop legge il movimento del puntatore. Sui dispositivi touch legge lo scorrimento. Si attiva solo quando l’utente interagisce e torna inattivo quando il movimento si ferma.
2 · Decidi l’obiettivo
Il motore confronta il movimento dell’utente con gli obiettivi visibili. Gli obiettivi fuori dalla viewport non partecipano ai calcoli.
3 · Avvia il lavoro
Quando un obiettivo diventa abbastanza probabile, il suo callback onIntent viene eseguito una volta. Può essere eseguito di nuovo se l’utente si allontana e poi ritorna.
Desktop e dispositivi mobili
- Sul desktop il motore segue il movimento bidimensionale del puntatore.
- Sui dispositivi mobili segue lo scorrimento verticale e si attiva al primo scorrimento.
- Gli obiettivi nascosti o fuori dallo schermo vengono ignorati, compresi quelli nascosti dal CSS responsivo.
L’idea della fisica
Immagina ogni obiettivo come un piccolo pozzo gravitazionale. Il movimento crea energia cinetica, mentre la distanza dall’obiettivo crea energia potenziale. Un puntatore o uno scorrimento veloce ha ancora slancio; un movimento lento vicino a un obiettivo sembra invece stabilizzarsi lì. Il motore usa una regola simile alla termodinamica per considerare più probabili queste destinazioni a bassa energia.
I dati di movimento del browser contengono piccoli salti ed errori. Un filtro di Kalman attenua questo rumore prima del calcolo fisico. In parole semplici, aiuta a distinguere un movimento intenzionale da misurazioni instabili. Tutto avviene dentro la libreria; la tua app riceve soltanto onIntent.