Исправлена проблема с центрированием выбранной даты: теперь выбранная дата остается в центре при клике, включая даты за пределами видимой области
This commit is contained in:
@@ -56,7 +56,7 @@ class DateCarousel {
|
|||||||
* Загрузка выбранной даты из скрытых полей фильтра
|
* Загрузка выбранной даты из скрытых полей фильтра
|
||||||
*/
|
*/
|
||||||
loadSelectedDate() {
|
loadSelectedDate() {
|
||||||
// Если есть выбранная дата в фильтре, не центрируем на ней - пусть остается в том же положении
|
// Если есть выбранная дата в фильтре, центрируем на ней, чтобы она была видна
|
||||||
if (this.minInput.value && this.maxInput.value &&
|
if (this.minInput.value && this.maxInput.value &&
|
||||||
this.minInput.value === this.maxInput.value) {
|
this.minInput.value === this.maxInput.value) {
|
||||||
const parts = this.minInput.value.split('-');
|
const parts = this.minInput.value.split('-');
|
||||||
@@ -68,8 +68,9 @@ class DateCarousel {
|
|||||||
);
|
);
|
||||||
selectedDate.setHours(0, 0, 0, 0);
|
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 {
|
} else {
|
||||||
// Если фильтра нет, центрируем на сегодняшнем дне
|
// Если фильтра нет, центрируем на сегодняшнем дне
|
||||||
@@ -251,6 +252,10 @@ class DateCarousel {
|
|||||||
this.minInput.value = formattedDate;
|
this.minInput.value = formattedDate;
|
||||||
this.maxInput.value = formattedDate;
|
this.maxInput.value = formattedDate;
|
||||||
|
|
||||||
|
// Обновляем центральную дату, чтобы выбранная дата была в центре
|
||||||
|
this.centerDate = new Date(date);
|
||||||
|
this.centerDate.setHours(0, 0, 0, 0);
|
||||||
|
|
||||||
// Визуальная обратная связь
|
// Визуальная обратная связь
|
||||||
btn.classList.add('clicked');
|
btn.classList.add('clicked');
|
||||||
setTimeout(() => btn.classList.remove('clicked'), 300);
|
setTimeout(() => btn.classList.remove('clicked'), 300);
|
||||||
|
|||||||
Reference in New Issue
Block a user