Improved sticky header

This commit is contained in:
2026-06-16 12:04:42 +02:00
parent 570db2d948
commit e9c865a254
4 changed files with 16 additions and 99 deletions
+1 -3
View File
@@ -11,7 +11,6 @@ const showModal = ref(false)
const viewMode = ref('list') // 'list' | 'article' — toggled from the hamburger menu
const currentIndex = ref(0)
const layout = ref(localStorage.getItem('layout') || 'list') // 'list' | 'cards' — list-view display style, toggled from the hamburger menu
const navTitleVisible = ref(true) // whether AppNav's "RSS Reader (N)" title is currently in view
let observer; // Declare observer outside the setup function
let initialLoad = false
@@ -185,7 +184,7 @@ function setupIntersectionObserver() {
// The sticky topbar overlays the top of the viewport, so an article fully
// hidden behind it should already count as "scrolled past" — shrink the
// observer's root by that height so it stops intersecting at that point.
const topbarHeight = document.querySelector('.list-topbar')?.getBoundingClientRect().height ?? 0;
const topbarHeight = document.querySelector('.app-nav')?.getBoundingClientRect().height ?? 0;
observer = new IntersectionObserver((entries) => handleIntersection(entries, topbarHeight), {
root: null, // Use the viewport as the root
@@ -324,7 +323,6 @@ export function useFeeds() {
leaveArticleView,
layout,
toggleLayout,
navTitleVisible,
nextArticle,
prevArticle,
fetchData,