From 45f7e88024c671b5d374a18ca2b87d8aecac757d Mon Sep 17 00:00:00 2001 From: "ext.jeremy.guillot@maxicoffee.domains" Date: Thu, 26 Mar 2026 16:11:19 +0100 Subject: [PATCH] =?UTF-8?q?fix(reader):=20corriger=20le=20scroll=20vers=20?= =?UTF-8?q?le=20haut=20bloqu=C3=A9=20en=20mode=20infini?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Les IntersectionObserver utilisaient root: null (viewport) au lieu du conteneur de scroll réel (.infinite-reader). Le rootMargin de 1000px était donc calculé par rapport au viewport, causant un montage/démontage des pages à des moments imprécis et des sauts de layout lors du scroll vers le haut. Supprime également scroll-behavior: smooth sur le conteneur, qui entrait en conflit avec le scroll anchoring du navigateur lors des corrections de position, donnant l'impression que le scroll redescendait tout seul. --- .../domain/reader/presentation/components/InfiniteReader.vue | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/assets/vue/app/domain/reader/presentation/components/InfiniteReader.vue b/assets/vue/app/domain/reader/presentation/components/InfiniteReader.vue index be5636e..40cd3ba 100644 --- a/assets/vue/app/domain/reader/presentation/components/InfiniteReader.vue +++ b/assets/vue/app/domain/reader/presentation/components/InfiniteReader.vue @@ -109,7 +109,7 @@ import ReaderPage from './ReaderPage.vue'; visibilityObserver.value?.disconnect(); observer.value = new IntersectionObserver(observeIntersection, { - root: null, + root: containerRef.value, threshold: 0.5 }); @@ -124,7 +124,7 @@ import ReaderPage from './ReaderPage.vue'; } }); }, - { root: null, rootMargin: '1000px 0px', threshold: 0 } + { root: containerRef.value, rootMargin: '1000px 0px', threshold: 0 } ); nextTick(() => { @@ -328,7 +328,6 @@ import ReaderPage from './ReaderPage.vue'; @apply flex-1 flex flex-col items-center overflow-y-auto relative min-h-0; /* Réduction du padding sur mobile */ @apply py-2 sm:py-8; - scroll-behavior: smooth; } .page-wrapper {