Ho una pagina in cui utilizzo la funzione smoothscroll; la pagina (www.metatad.it/index.php) contiene una gran quantità di immagini in miniatura, e sul lato sinistro ci sono due pulsanti up e down.
Il primo, usando la funzione smoothscroll, riporta alla testa della pagina (inciso: benchè l'ancora target sia messa esattamente dopo l'apertura del tag <body>, lo scroll della pagina si ferma qualche pixel prima...), mentre il secondo, down, consente di scrollare verso il basso a blocchi.
Ovvero, se ad apertura della pagina si clicca sul pulsante down, la pagina scrolla sino alla 5 riga di immagini. L'idea è quella di far si che, ogni qualvolta si clicca sul pulsante down, usando anche la funzione innerHTML viene riscritto il collegamento del pulsante stesso.
In pratica (vederlo è più semplice che spiegarlo...), se clicco sul pulsante una prima volta, la pagina scrolla alla quinta riga ed il href viene riscritto in modo tale che, se riclicco, la pagina scrolla sino alla riga 10 (e così via, di 5 in 5, sino alla fine: l'ultimo, rimanda al top di pagina).
Tutto questo funziona, ma con un limite: il primo click sul pulsante down (quello nella condizione di default, di apertura e primo caricamento della pagina) fa scrollare la pagina con l'effetto smoothscroll, ma dal secondo in avanti l'effetto cessa di funzionare, e lo scroll avviene a stacchi netti. Mentre cliccando sul pulsante up (quello che non viene riscritto via innerHTML) funziona sempre.
Evidentemente, il fatto che l'href venga riscritto in qualche modo disturba l'applicazione dell'effetto smoothscroll...
Come posso risolvere?
![]()