Merge b70d72928367b1c9bb3fe8aee3bd123b7e7f4cbe into 4c4f43779c6de5adf1c61edd4e79aae233965393

This commit is contained in:
XUE 2024-11-03 16:54:22 +00:00 committed by GitHub
commit 1c87a7130f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

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) {
return;
} }
const yOffset = visibleActiveItem.clientHeight; function restoreSidebarPosition() {
const yDistance = visibleActiveItem.getBoundingClientRect().top - sidebarScrollbar.getBoundingClientRect().top; const sidebarScrollbar = document.querySelector("aside.sidebar-container > .hextra-scrollbar");
if (sidebarScrollbar) {
const savedPosition = sessionStorage.getItem('sidebarScrollPosition');
if (savedPosition !== null) {
sidebarScrollbar.scrollTo({ sidebarScrollbar.scrollTo({
behavior: "instant", top: parseInt(savedPosition),
top: yDistance - yOffset behavior: 'instant'
}); });
} }
sidebarScrollbar.addEventListener('scroll', function() {
saveSidebarPosition();
});
}
}