diff --git a/web/index.html b/web/index.html index fb4028a..d2c2c80 100644 --- a/web/index.html +++ b/web/index.html @@ -255,13 +255,17 @@ let currentStop = "Полярные Зори"; // Date#getDay(): 0 — воскресенье, 6 — суббота function dayKeyFor(dow){ return dow===0 ? "sunday" : dow===6 ? "saturday" : "weekday"; } +// Карточки ближайших рейсов всегда показывают реальный сегодняшний день +function todayKey(){ return dayKeyFor(nowMs().day); } + +// Выбор пользователя — только для полного расписания function sched(){ return SCHEDULES[activeDay]; } function render(){ const now = nowMs(); const curMin = now.hour*60 + now.minute; const dirs = DIRECTIONS[currentStop]; - const data = sched(); + const data = SCHEDULES[todayKey()]; document.getElementById("dirBox").innerHTML = dirs.map(d=>{ const upcoming = data .map((r,ri)=>{ @@ -303,12 +307,12 @@ function renderDay(){ document.getElementById("dayBadge").innerHTML = `Сегодня ${DAYS[dow]}`; } -// Подсветка выбранного типа дня и перерисовка расписания +// Подсветка выбранного типа дня. Таблица полного расписания перерисовывается, +// карточки ближайших рейсов не трогаем — они всегда на сегодня. function selectDay(key){ activeDay = key; document.querySelectorAll("#dayPick button").forEach(b=> b.classList.toggle("active", b.dataset.day === key)); - render(); renderTable(); } @@ -342,9 +346,9 @@ document.getElementById("fullBtn").addEventListener("click",()=>{ b.classList.toggle("open", !open); }); -let activeDay = dayKeyFor(nowMs().day); // по умолчанию — реальный день недели +let activeDay = todayKey(); // по умолчанию — реальный день недели selectDay(activeDay); -tickClock(); renderDay(); +tickClock(); renderDay(); render(); setInterval(tickClock,1000); setInterval(render,30000); setInterval(renderDay,60000);