From 6055d2a58a0a5b3b0cf483dd1661885951ef5800 Mon Sep 17 00:00:00 2001 From: Mikita Pilinka Date: Tue, 13 Feb 2024 12:47:29 +0100 Subject: [PATCH] fix: TOC scrolls with view Ticket: ENT-11202 Changelog: None Signed-off-by: Mikita Pilinka --- generator/_assets/js/custom.js | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/generator/_assets/js/custom.js b/generator/_assets/js/custom.js index c4e3a5a0c..3a80c6fc6 100755 --- a/generator/_assets/js/custom.js +++ b/generator/_assets/js/custom.js @@ -388,7 +388,7 @@ document.addEventListener("DOMContentLoaded", function () { for (let i = anchorsOffsets.length - 1; i >= 0; i--) { if (scrollTop > anchorsOffsets[i]) { - setActiveLink(anchors[i].id); + setActiveLink(anchors[i].id, i); break; } } @@ -396,11 +396,17 @@ document.addEventListener("DOMContentLoaded", function () { } - const setActiveLink = (id) => { + const setActiveLink = (id, n) => { const activeLink = document.querySelector(`#TOCbox_list li a[href$="#${id}"]`); if (activeLink) { activeLink.classList.add('current'); } + const tocWrapper = document.getElementById('TOCbox_wrapper'); + const TOC_TOP_OFFSET = 42; + const LI_HEIGHT = 22; + const windowHeight = window.innerHeight; + const bottomLi = windowHeight-TOC_TOP_OFFSET - (LI_HEIGHT * n) + tocWrapper.style.top = (bottomLi > 0 ? 12-tocWrapper.style.top : 12) + 'px'; } window.addEventListener('scroll', updateActiveTocItem);