Исправлена проблема с центрированием выбранной даты: теперь выбранная дата остается в центре при клике, включая даты за пределами видимой области
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user