Qual è il modo migliore di scorrere la finestra del browser per espandere gli elementi?
-
05-07-2019 - |
Domanda
Quello che voglio fare è scorrere verso il basso la finestra quando espanderò elementi nella mia pagina.
L'effetto che sto cercando di ottenere è simile ai commenti Stack Overflow. Se si espande oltre la pagina, scorre verso il basso per adattarsi a tutti i commenti nella finestra.
Qual è il modo migliore per farlo?
Modifica: sto usando JQuery.
Soluzione
Questo plugin jQuery ha funzionato bene per me: http://demos.flesler.com/jquery/scrollTo/
Altri suggerimenti
Se hai il vantaggio di usare Prototype, puoi usare $ (element) .scrollTo ()
.
Altrimenti, l'idea generale è di calcolare l'offset cumulativo dell'elemento, quindi impostare window.scrollTop
(e window.scrollLeft
) di conseguenza.
Puoi farlo bene con Scriptaculous (costruito sopra Prototype ):
new Effect.ScrollTo('someDiv',{...some parameters...})
Ti offre un controllo più preciso rispetto al solo Prototype (ritardo prima dell'inizio, durata ed eventi di callback (come afterFinish) che ti consentono di attivare altri effetti o qualunque cosa tu scelga. Puoi farlo scorrere in modo fluido e piacevole, quindi la pagina non improvvisamente saltare.
Se sai qual è il prossimo elemento nel sorgente, potresti semplicemente saltare a quell'elemento (location.href = " # ... "). Questo userebbe lo 'scrolling' nativo del browser e non userebbe alcuna libreria.
Potresti usare questo codice che va bene ma non è perfetto. Sulla base del suggerimento di blonkm
function scrollTo( Selector ){
$(Selector).before("<a name='scroll' id='scroll'></a>");
document.location.hash = 'scroll';
$('scroll').remove();
}
Questo dovrebbe funzionare. Richiede jQuery ma dici già che lo usi.