From 44c4ffe3c2b9246c5b4ffa5c717f52e303755671 Mon Sep 17 00:00:00 2001 From: posimai Date: Mon, 20 Apr 2026 18:43:38 +0900 Subject: [PATCH] =?UTF-8?q?fix(posimai-sc):=20=E7=90=86=E8=A7=A3=E5=BA=A6?= =?UTF-8?q?=E3=83=81=E3=82=A7=E3=83=83=E3=82=AF=E3=81=B8=E3=81=AE=E3=82=B8?= =?UTF-8?q?=E3=83=A3=E3=83=B3=E3=83=97=E4=BD=8D=E7=BD=AE=E3=82=BA=E3=83=AC?= =?UTF-8?q?=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Made-with: Cursor --- posimai-sc/js/app.js | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/posimai-sc/js/app.js b/posimai-sc/js/app.js index f94ec3b0..4caedce2 100644 --- a/posimai-sc/js/app.js +++ b/posimai-sc/js/app.js @@ -827,17 +827,28 @@ document.addEventListener('alpine:init', () => { this.stepMode=false; this.$nextTick(()=>{ if(window.lucide) lucide.createIcons(); - const el=document.getElementById('comprehension-quiz'); - if(el) el.scrollIntoView({behavior:'smooth',block:'start'}); + requestAnimationFrame(()=>{ + requestAnimationFrame(()=>{ this.scrollMainToComprehension(); }); + }); }); }, scrollToComprehension(){ this.$nextTick(()=>{ - const el=document.getElementById('comprehension-quiz'); - if(el) el.scrollIntoView({behavior:'smooth',block:'start'}); + requestAnimationFrame(()=>{ + requestAnimationFrame(()=>{ this.scrollMainToComprehension(); }); + }); if(window.lucide) lucide.createIcons(); }); }, + scrollMainToComprehension(){ + const m=document.getElementById('main'); + const el=document.getElementById('comprehension-quiz'); + if(!m||!el) return; + // main内の実座標で算出して、カード先頭へ安定して合わせる + const offset=8; + const top=(el.getBoundingClientRect().top - m.getBoundingClientRect().top) + m.scrollTop - offset; + m.scrollTo({ top:Math.max(0,top), behavior:'smooth' }); + }, stepGoBack(){ if(!this.stepMode) return; if(this.stepStep===1){