Merge pull request #4266 from sbwalker/dev
improve scroll position navigation behavior
This commit is contained in:
commit
4b1f23a189
|
@ -187,7 +187,7 @@
|
|||
}
|
||||
@if (_renderMode == RenderModes.Static)
|
||||
{
|
||||
_scrollPositionScript = "<page-script src=\"/js/scrollposition.js\"></page-script>";
|
||||
_scrollPositionScript = CreateScrollPositionScript();
|
||||
}
|
||||
|
||||
_headResources += ParseScripts(site.HeadContent);
|
||||
|
@ -488,6 +488,24 @@
|
|||
"</script>";
|
||||
}
|
||||
|
||||
private string CreateScrollPositionScript()
|
||||
{
|
||||
return
|
||||
"<script>" + Environment.NewLine +
|
||||
" window.interceptNavigation = () => {" + Environment.NewLine +
|
||||
" let currentUrl = window.location.href;" + Environment.NewLine +
|
||||
" Blazor.addEventListener('enhancedload', () => {" + Environment.NewLine +
|
||||
" let newUrl = window.location.href;" + Environment.NewLine +
|
||||
" if (currentUrl != newUrl) {" + Environment.NewLine +
|
||||
" window.scrollTo({ top: 0, left: 0, behavior: 'instant' });" + Environment.NewLine +
|
||||
" }" + Environment.NewLine +
|
||||
" currentUrl = newUrl;" + Environment.NewLine +
|
||||
" });" + Environment.NewLine +
|
||||
" };" + Environment.NewLine +
|
||||
" document.onload += window.interceptNavigation();" + Environment.NewLine +
|
||||
"</script>";
|
||||
}
|
||||
|
||||
private string ParseScripts(string content)
|
||||
{
|
||||
// iterate scripts
|
||||
|
|
|
@ -1,12 +0,0 @@
|
|||
|
||||
function setScrollPosition() {
|
||||
window.scrollTo({
|
||||
top: 0,
|
||||
left: 0,
|
||||
behavior: 'instant'
|
||||
});
|
||||
}
|
||||
|
||||
export function onUpdate() {
|
||||
setScrollPosition();
|
||||
}
|
Loading…
Reference in New Issue
Block a user