summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.changeset/shaggy-socks-glow.md5
-rw-r--r--packages/astro/src/transitions/router.ts3
2 files changed, 7 insertions, 1 deletions
diff --git a/.changeset/shaggy-socks-glow.md b/.changeset/shaggy-socks-glow.md
new file mode 100644
index 000000000..409d02908
--- /dev/null
+++ b/.changeset/shaggy-socks-glow.md
@@ -0,0 +1,5 @@
+---
+'astro': patch
+---
+
+Fixes a view transition issue on webKit browsers that prevented scrolling to #fragments
diff --git a/packages/astro/src/transitions/router.ts b/packages/astro/src/transitions/router.ts
index a97abfcf7..6ff0efc01 100644
--- a/packages/astro/src/transitions/router.ts
+++ b/packages/astro/src/transitions/router.ts
@@ -194,7 +194,6 @@ const moveToLocation = (to: URL, from: URL, options: Options, historyState?: Sta
to.href
);
}
- history.scrollRestoration = 'manual';
}
// now we are on the new page for non-history navigations!
// (with history navigation page change happens before popstate is fired)
@@ -213,12 +212,14 @@ const moveToLocation = (to: URL, from: URL, options: Options, historyState?: Sta
// because we are already on the target page ...
// ... what comes next is a intra-page navigation
// that won't reload the page but instead scroll to the fragment
+ history.scrollRestoration = 'auto';
location.href = to.href;
} else {
if (!scrolledToTop) {
scrollTo({ left: 0, top: 0, behavior: 'instant' });
}
}
+ history.scrollRestoration = 'manual';
}
};