Frage

Was ich tun möchte, ist das Fenster nach unten scrollen, wenn ich Elemente in meiner Seite zu erweitern.

Der Effekt, den ich zu erreichen versuchen, ist, wie die Stack-Überlauf Kommentare. Wenn sie über die Seite erweitert, es nach unten scrollt alle Kommentare in das Fenster zu passen.

Was ist der beste Weg, dies zu tun?

Edit:. Ich bin mit JQuery

War es hilfreich?

Lösung

Die jQuery-Plugin funktionierte gut für mich: http://demos.flesler.com/jquery/scrollTo/

Andere Tipps

Wenn Sie den Vorteil der Verwendung von Prototype haben, können Sie $(element).scrollTo() verwenden.

Ansonsten ist die allgemeine Idee der kumulativen des Elements Offset zu berechnen, dann setzen window.scrollTop (und window.scrollLeft) entsprechend an.

Sie können es gut mit Scriptaculous (gebaut oben auf Prototype ):

new Effect.ScrollTo('someDiv',{...some parameters...})

Es gibt Ihnen eine feinere Kontrolle als Prototyp allein (Verzögerung vor Beginn, Dauer und Callback-Ereignisse (wie afterFinish), die es Ihnen ermöglichen, andere Effekte auslösen oder was auch immer Sie sich entscheiden. Sie können es glatt und schön machen bewegen, so dass die Seite doesn ‚t plötzlich springen.

Wenn Sie wissen, was das nächste Element in der Quelle ist, könnte man tatsächlich auf dieses Element springt gerade (location.href = „# ...“). Dies würde der Browser nativen ‚Scrollen‘ verwenden und keine Bibliotheken verwenden.

Sie können diesen Code wich ist in Ordnung, aber nicht perfekt nutzen. Basierend auf den Vorschlag von blonkm

function scrollTo( Selector ){
  $(Selector).before("<a name='scroll' id='scroll'></a>");
  document.location.hash = 'scroll';
  $('scroll').remove();
}

Das sollte funktionieren. Benötigt jQuery aber Sie schon sagen, Ihr, dass die Verwendung.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top