Ich baue eine Website auf, die ich mit div
s veröffentliche. Wenn ich die Seite aktualisiere, nachdem sie zu Position X gescrollt wurde, wird die Seite mit der Bildlaufposition X geladen.
Wie kann ich erzwingen, dass die Seite bei der Seitenaktualisierung nach oben gescrollt wird?
Was ich denken kann, ist von einigen JS oder jQuery Laufes als
onLoad()
Funktion der Seite SET der Seiten nach oben scrollen. Aber ich weiß nicht, wie ich das machen könnte.Eine bessere Option wäre, wenn es eine Eigenschaft oder etwas gibt, bei der die Seite standardmäßig mit ihrer Bildlaufposition geladen wird (dh oben). Dies ähnelt dem Laden einer Seite anstelle einer Seitenaktualisierung .
Antworten:
Sie können dies mit der scrollTop- Methode unter DOM ready tun :
quelle
Für eine einfache Ebene JavaScript - Implementierung:
quelle
Safari 11.0.3
und funktioniert für mich in Ordnung. Welches verwenden Sie?return
?document.querySelector('html').style.scrollBehavior = '';
kann auch notwendig sein. Wenn es auf eingestellt ist,smooth
wird es möglicherweise nicht nach oben verschoben, bevor die Seite neu geladen wird.Die Antwort hier funktioniert nicht für Safari, document.ready wird oft zu früh abgefeuert.
Sollte das
beforeunload
Ereignis verwenden, das Sie daran hindert, etwas zu tunsetTimeout
quelle
Wieder ist die beste Antwort:
(das ist für Nicht-jQuery, schauen Sie nach, wenn Sie nach der JQ-Methode suchen)
BEARBEITEN: Ein kleiner Fehler ist "onbeforunload" :) Chrome und andere Browser "merken" sich die letzte Bildlaufposition vor dem Entladen. Wenn Sie also den Wert kurz vor dem Entladen Ihrer Seite auf 0,0 setzen, werden sie sich an 0,0 erinnern und gewinnen Scrollen Sie nicht zurück zu der Stelle, an der sich die Bildlaufleiste befand :)
quelle
document.documentElement.scrollTop
funktionieren. Normalerweise benutze ich aber beide.Überprüfen Sie die jQuery -
.scrollTop()
Funktion hierEs würde ungefähr so aussehen
quelle
Sie können es auch versuchen
Wenn Sie an der x-Position scrollen möchten, können Sie den Wert von 0 in x ändern.
quelle
location.reload()
Verwenden Sie stattdessen einfachlocation.href = location.href
. Es wird nicht wie zuvor zur vorherigen Positionlocation.reload()
gescrollt.Hinweis: Dies wird nicht neu geladen, wenn die URL ein # enthält
quelle
Fügen Sie das obige Skript in das
<head>
Tag Ihres HTML-Codes ein. Nicht sicher, wie sich einseitige Apps verhalten! Aber sicher funktioniert es wie Charme auf normalen Seiten.quelle
Die Antwort hier (Scrollen
$(document).ready
) funktioniert nicht, wenn die Seite ein Video enthält. In diesem Fall wird die Seite nach dem Auslösen dieses Ereignisses gescrollt, wodurch unsere Arbeit außer Kraft gesetzt wird.Die beste Antwort sollte sein:
quelle
hat bei mir nicht funktioniert, da Google Chrome nach dem Laden der Seite einfach wieder nach unten scrollen würde. Was ich benutzt habe war
// Dies lädt die Seite mit einem # am Ende. Es wird also immer oben geladen.
quelle
Um das Fenster zurückzusetzen, scrollen Sie zurück nach oben.
$(window).scrollTop(0)
Im Ereignis vor dem Herunterladen werden die Tricks ausgeführt. Ich habe jedoch in Chrome 80 getestet , dass es nach dem erneuten Laden an den alten Speicherort zurückkehrt.Um dies zu verhindern, setzen Sie
history.scrollRestoration
auf"manual"
.quelle
Die supercalifragilisticexpialidocious Antwort lautet:
Fügen Sie dies oben in Ihrer JS- Datei oder Ihrem Skript-Tag hinzu
quelle