<div id="containerDiv"></div>
#containerDiv {
position: absolute;
top: 0px;
width: 400px;
height: 100%;
padding: 5px;
font-size: .875em;
overflow-y: scroll;
}
document.getElementById("containerDiv").innerHTML = variableLongText;
Wie setze ich die Bildlaufposition beim nächsten Mal wieder auf die Oberseite des Container-Div zurück?
javascript
html
scroll
Ich bin da
quelle
quelle
Eine andere Möglichkeit, dies mit einer reibungslosen Animation zu tun, ist folgende
quelle
slow
, es ist so ... langsam!slow
als zweites Argument zu übergeben. Sie können eine Ganzzahl übergeben, die der Anzahl der Millisekunden entspricht, die die Animation ausführen soll.Ich habe die vorhandenen Antworten auf diese Frage ausprobiert und keine davon hat für mich in Chrome funktioniert. Was funktionierte, war etwas anders:
quelle
scrollTo
ist die ultimative Lösung, um die Fenster nach oben zu scrollen - das Beste daran ist, dass kein ID-Selektor erforderlich ist und selbst wenn wir die IFRAME-Struktur verwenden, funktioniert sie sehr gut.
jQuery
Eine andere Möglichkeit, dasselbe zu tun, ist die Verwendung von jQuery, wodurch ein gleichmäßigeres Erscheinungsbild erzielt wird
Dabei gibt 0 nach dem scrollTop die vertikale Bildlaufleistenposition im Pixel an und der zweite Parameter ist ein optionaler Parameter, der die Zeit in Mikrosekunden anzeigt, um die Aufgabe abzuschließen.
quelle
document.getElementById('scroller').scrollTo(0,0)
Das hat bei mir funktioniert:
quelle
document.getElementById("yourDivID").scrollIntoView({behavior: "smooth", block: "start", inline: "nearest"})
scollIntoView
Sie außerdem, dass dies nur funktioniert, wenn Sie es für das Element aufrufen, das gescrollt werden soll. Mit anderen Worten, nennen Sie es nicht auf dem Element , das Sie blättern möchten zu , rufen Sie es auf dem Element , das Sie bewegen möchten.Stellen Sie für diejenigen, die diese Funktion immer noch nicht ausführen können, sicher, dass das übergelaufene Element angezeigt wird, bevor Sie die jQuery-Funktion verwenden .
Beispiel:
quelle
Für mich hat der scrollTop-Weg nicht funktioniert, aber ich habe andere gefunden:
Die Mindestzeit für ein zuverlässiges CSS-Rendering wurde jedoch nicht überprüft. 100 ms könnten zu viel sein.
quelle
Wenn Sie mit einem reibungslosen Übergang scrollen möchten, können Sie dies verwenden!
(Vanilla JS)
Hoffe das hilft!!
quelle
Laut der Antwort von François Noël "Stellen Sie für diejenigen, die diese Funktion immer noch nicht ausführen können, sicher, dass das übergelaufene Element angezeigt wird, bevor Sie die jQuery-Funktion verwenden."
Ich habe in einem Bootstrap-Modal gearbeitet, das ich wiederholt mit Kontoberechtigungen in einem Div aufrufe, der in der y-Dimension überläuft. Mein Problem war, ich habe versucht, die Funktion jquery .scrollTop (0) zu verwenden, und es würde nicht funktionieren, egal wie ich es versucht habe. Ich musste ein Ereignis für das Modal einrichten, das die Bildlaufleiste nicht zurücksetzte, bis das Modal die Animation beendet hatte. Der Code, der endlich für mich funktioniert hat, ist hier:
quelle
Wenn der HTML-Inhalt ein einzelnes Ansichtsfenster überläuft, funktioniert dies bei mir nur mit Javascript:
Grüße,
quelle
Dies ist die einzige Möglichkeit, wie es bei mir funktioniert hat, mit einem reibungslosen Bildlaufübergang:
quelle
Vergessen Sie beim Abrufen des Elements nach Klassennamen nicht, dass der Rückgabewert ein Array ist. Daher dieser Code:
Würde nicht funktionieren. Verwenden Sie stattdessen den folgenden Code.
Ich dachte, andere Leute könnten auf ein ähnliches Problem stoßen wie ich; Das sollte also den Trick machen.
quelle
Diese beiden Codes haben für mich wie ein Zauber funktioniert, den der erste benötigt, um zum Anfang der Seite zu scrollen. Wenn Sie jedoch zu einem bestimmten Div scrollen möchten, verwenden Sie den zweiten mit Ihrer Div-ID.
Wenn Sie nach einem Klassennamen blättern möchten, verwenden Sie den folgenden Code
quelle
Die ID sollte die ID des entsprechenden Div haben, der die Überlauf-CSS-Eigenschaft hat.
document.querySelector('#YOUR_OVERFLOWED_DIV').scrollTop = 0;
quelle