Fix scrolling
This commit is contained in:
parent
797e580cc0
commit
60ecacb4d4
1 changed files with 5 additions and 6 deletions
|
|
@ -1,16 +1,15 @@
|
|||
import zenscroll from "https://esm.sh/zenscroll@4.0.2";
|
||||
|
||||
var FIXED_BUFFER = 91; // breathing room below fixed header when menu is closed
|
||||
var MOBILE_BUFFER = 0; // no offset needed when header is in-flow (scrolls away)
|
||||
var FIXED_BUFFER = 0; // breathing room below fixed header when menu is closed
|
||||
|
||||
// Returns the effective scroll offset to clear the header.
|
||||
// When the hamburger is open, offsetHeight already includes the expanded nav,
|
||||
// so no extra buffer is needed. When closed, add FIXED_BUFFER for breathing room.
|
||||
function headerOffset() {
|
||||
var header = document.querySelector(".rpt-header");
|
||||
if (!header) return MOBILE_BUFFER;
|
||||
if (!header) return 0;
|
||||
var pos = window.getComputedStyle(header).position;
|
||||
if (pos !== "fixed" && pos !== "sticky") return MOBILE_BUFFER;
|
||||
if (pos !== "fixed" && pos !== "sticky") return 0;
|
||||
var nav = document.getElementById("rpt-main-nav");
|
||||
var menuOpen = nav && nav.classList.contains("is-open");
|
||||
return header.offsetHeight + (menuOpen ? 0 : FIXED_BUFFER);
|
||||
|
|
@ -24,7 +23,7 @@ document.addEventListener("DOMContentLoaded", function () {
|
|||
if (!target) return;
|
||||
// Defer until layout is stable, then position correctly.
|
||||
requestAnimationFrame(function () {
|
||||
zenscroll.to(target, 0, headerOffset());
|
||||
zenscroll.toY(Math.max(0, target.getBoundingClientRect().top + window.scrollY - headerOffset()), 0);
|
||||
});
|
||||
});
|
||||
|
||||
|
|
@ -34,5 +33,5 @@ document.addEventListener("click", function (e) {
|
|||
var target = document.querySelector(link.dataset.scrollTo);
|
||||
if (!target) return;
|
||||
e.preventDefault();
|
||||
zenscroll.to(target, 400, headerOffset());
|
||||
zenscroll.toY(Math.max(0, target.getBoundingClientRect().top + window.scrollY - headerOffset()), 400);
|
||||
});
|
||||
|
|
|
|||
Loading…
Reference in a new issue