Compare commits

...

2 Commits

View File

@ -1,5 +1,5 @@
document.addEventListener("DOMContentLoaded", function () { document.addEventListener("DOMContentLoaded", function () {
scrollToActiveItem(); restoreSidebarPosition();
enableCollapsibles(); enableCollapsibles();
}); });
@ -16,21 +16,28 @@ function enableCollapsibles() {
}); });
} }
function scrollToActiveItem() { function saveSidebarPosition() {
const sidebarScrollbar = document.querySelector("aside.sidebar-container > .hextra-scrollbar"); const sidebarScrollbar = document.querySelector("aside.sidebar-container > .hextra-scrollbar");
const activeItems = document.querySelectorAll(".sidebar-active-item"); if (sidebarScrollbar) {
const visibleActiveItem = Array.from(activeItems).find(function (activeItem) { const scrollPosition = sidebarScrollbar.scrollTop;
return activeItem.getBoundingClientRect().height > 0; sessionStorage.setItem('sidebarScrollPosition', scrollPosition);
}); }
}
if (!visibleActiveItem) { function restoreSidebarPosition() {
return; const sidebarScrollbar = document.querySelector("aside.sidebar-container > .hextra-scrollbar");
if (sidebarScrollbar) {
const savedPosition = sessionStorage.getItem('sidebarScrollPosition');
if (savedPosition !== null) {
sidebarScrollbar.scrollTo({
top: parseInt(savedPosition),
behavior: 'instant'
});
} }
const yOffset = visibleActiveItem.clientHeight; sidebarScrollbar.addEventListener('scroll', function() {
const yDistance = visibleActiveItem.getBoundingClientRect().top - sidebarScrollbar.getBoundingClientRect().top; saveSidebarPosition();
sidebarScrollbar.scrollTo({
behavior: "instant",
top: yDistance - yOffset
}); });
}
} }