mirror of
https://github.com/nuxt/nuxt.git
synced 2024-11-11 08:33:53 +00:00
fix(vue-app): use browser to handle scrolling position on page reload and back-navigation from other sites (#5080)
This commit is contained in:
parent
e4f1d597d4
commit
7001312269
@ -86,7 +86,21 @@ Vue.use(Router)
|
||||
const scrollBehavior = <%= serializeFunction(router.scrollBehavior) %>
|
||||
<% } else { %>
|
||||
if (process.client) {
|
||||
window.history.scrollRestoration = 'manual'
|
||||
if ('scrollRestoration' in window.history) {
|
||||
window.history.scrollRestoration = 'manual'
|
||||
|
||||
// reset scrollRestoration to auto when leaving page, allowing page reload
|
||||
// and back-navigation from other pages to use the browser to restore the
|
||||
// scrolling position.
|
||||
window.addEventListener('beforeunload', () => {
|
||||
window.history.scrollRestoration = 'auto'
|
||||
})
|
||||
|
||||
// Setting scrollRestoration to manual again when returning to this page.
|
||||
window.addEventListener('load', () => {
|
||||
window.history.scrollRestoration = 'manual'
|
||||
})
|
||||
}
|
||||
}
|
||||
const scrollBehavior = function (to, from, savedPosition) {
|
||||
// if the returned position is falsy or an empty object,
|
||||
|
Loading…
Reference in New Issue
Block a user