Исправлена проблема с центрированием выбранной даты: теперь выбранная дата остается в центре при клике, включая даты за пределами видимой области

This commit is contained in:
2025-11-07 20:06:21 +03:00
parent 7a725f485a
commit b9665e8761

View File

@@ -56,7 +56,7 @@ class DateCarousel {
* Загрузка выбранной даты из скрытых полей фильтра
*/
loadSelectedDate() {
// Если есть выбранная дата в фильтре, не центрируем на ней - пусть остается в том же положении
// Если есть выбранная дата в фильтре, центрируем на ней, чтобы она была видна
if (this.minInput.value && this.maxInput.value &&
this.minInput.value === this.maxInput.value) {
const parts = this.minInput.value.split('-');
@@ -68,8 +68,9 @@ class DateCarousel {
);
selectedDate.setHours(0, 0, 0, 0);
// Не изменяем центральную дату, просто оставим как есть
console.log(`Selected date: ${this.formatDate(selectedDate)}, not centering`);
// Центрируем на выбранной дате, чтобы она всегда была видна
this.centerDate = selectedDate;
console.log(`Centering on selected date: ${this.formatDate(selectedDate)}`);
}
} else {
// Если фильтра нет, центрируем на сегодняшнем дне
@@ -251,6 +252,10 @@ class DateCarousel {
this.minInput.value = formattedDate;
this.maxInput.value = formattedDate;
// Обновляем центральную дату, чтобы выбранная дата была в центре
this.centerDate = new Date(date);
this.centerDate.setHours(0, 0, 0, 0);
// Визуальная обратная связь
btn.classList.add('clicked');
setTimeout(() => btn.classList.remove('clicked'), 300);