Qual è il modo migliore di scorrere la finestra del browser per espandere gli elementi?

StackOverflow https://stackoverflow.com/questions/245768

  •  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.

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top