More actions
No edit summary |
No edit summary |
||
| Line 56: | Line 56: | ||
requestAnimationFrame(() => { | requestAnimationFrame(() => { | ||
const rect = heading.getBoundingClientRect(); | const rect = heading.getBoundingClientRect(); | ||
const scrollTop = window.scrollY + rect.top - | const scrollTop = window.scrollY + rect.top - 80; // Adjust 80px for sticky header | ||
window.scrollTo({ top: scrollTop, behavior: 'smooth' }); | window.scrollTo({ top: scrollTop, behavior: 'smooth' }); | ||
| Line 63: | Line 63: | ||
} | } | ||
// | // Handle direct URL loads with a hash (on page load) | ||
mw.hook('wikipage.content').add(function() { | mw.hook('wikipage.content').add(function() { | ||
if (window.innerWidth >= 768) { | if (window.innerWidth >= 768) { | ||
| Line 85: | Line 85: | ||
}); | }); | ||
// | // Hook into Citizen TOC (Contents Menu) clicks correctly | ||
mw.hook('wikipage.content').add(function() { | mw.hook('wikipage.content').add(function() { | ||
if (window.innerWidth >= 768) { | if (window.innerWidth >= 768) { | ||
| Line 111: | Line 111: | ||
}); | }); | ||
// | // Intercept in-page wiki links like [[#HeadingName]] | ||
mw.hook('wikipage.content').add(function($content) { | mw.hook('wikipage.content').add(function($content) { | ||
if (window.innerWidth >= 768) { | if (window.innerWidth >= 768) { | ||