docs: Add detailed calendar feature documentation
This commit is contained in:
parent
0c8bec10c4
commit
076bbba2e8
95
CALENDAR_FEATURE.md
Normal file
95
CALENDAR_FEATURE.md
Normal file
@ -0,0 +1,95 @@
|
|||||||
|
# Функция календаря в NoteJS
|
||||||
|
|
||||||
|
## Описание
|
||||||
|
|
||||||
|
Добавлена новая функция интерактивного календаря на странице заметок. Календарь расположен слева от формы создания заметок и обеспечивает удобную навигацию по датам.
|
||||||
|
|
||||||
|
## Что было добавлено
|
||||||
|
|
||||||
|
### 1. HTML разметка (`public/notes.html`)
|
||||||
|
- Новый контейнер `main-wrapper` для двухколонного макета
|
||||||
|
- Боковая панель `calendar-sidebar` с календарём
|
||||||
|
- Элементы для отображения дней месяца, навигации между месяцами
|
||||||
|
- Дни недели на русском языке (Пн, Вт, Ср, Чт, Пт, Сб, Вс)
|
||||||
|
|
||||||
|
### 2. Стили CSS (`public/style.css`)
|
||||||
|
- Стили для двухколонного макета с использованием flexbox
|
||||||
|
- Красивое оформление календаря:
|
||||||
|
- Сегодняшний день: синий цвет (класс `today`)
|
||||||
|
- Выбранный день: зелёный цвет (класс `selected`)
|
||||||
|
- Дни соседних месяцев: серый цвет (класс `other-month`)
|
||||||
|
- Активные дни имеют эффекты наведения (hover)
|
||||||
|
- Адаптивный дизайн для мобильных устройств (при ширине < 768px календарь переходит на всю ширину)
|
||||||
|
|
||||||
|
### 3. JavaScript функциональность (`public/calendar.js`)
|
||||||
|
Новый файл `calendar.js` содержит класс `Calendar` с методами:
|
||||||
|
- `init()` - инициализация календаря
|
||||||
|
- `render()` - отрисовка календаря
|
||||||
|
- `renderTitle()` - отрисовка названия месяца и года
|
||||||
|
- `renderDays()` - отрисовка дней месяца
|
||||||
|
- `previousMonth()` - переход на предыдущий месяц
|
||||||
|
- `nextMonth()` - переход на следующий месяц
|
||||||
|
- `selectDate()` - выбор даты при клике
|
||||||
|
- `isToday()` - проверка, является ли день сегодняшним
|
||||||
|
- `isSelected()` - проверка, выбран ли день
|
||||||
|
- `formatDate()` - форматирование даты в формате ДД.МММ.ГГГГ
|
||||||
|
|
||||||
|
## Особенности
|
||||||
|
|
||||||
|
✅ **Интерактивные кнопки навигации** - легко переходить между месяцами
|
||||||
|
✅ **Выделение сегодняшнего дня** - синий фон на текущую дату
|
||||||
|
✅ **Выделение выбранной даты** - зелёный фон на выбранную дату
|
||||||
|
✅ **Русские названия** - месяцы и дни недели на русском языке
|
||||||
|
✅ **Адаптивный дизайн** - правильно отображается на мобильных устройствах
|
||||||
|
✅ **Без зависимостей** - не требует дополнительных библиотек
|
||||||
|
✅ **Чистый код** - использует современный JavaScript с классами
|
||||||
|
|
||||||
|
## Макет
|
||||||
|
|
||||||
|
```
|
||||||
|
┌─────────────────────────────────────────────────┐
|
||||||
|
│ Заголовок (логин, выход) │
|
||||||
|
├──────────────┬──────────────────────────────────┤
|
||||||
|
│ Календарь │ Форма создания заметки │
|
||||||
|
│ │ │
|
||||||
|
│ < Октябрь > │ Кнопки форматирования (B I H) │
|
||||||
|
│ Пн Вт Ср... │ [Текстовое поле] │
|
||||||
|
│ 1 2 3... │ [Сохранить] │
|
||||||
|
│ │ │
|
||||||
|
├──────────────┴──────────────────────────────────┤
|
||||||
|
│ Список заметок │
|
||||||
|
│ [Заметка 1] │
|
||||||
|
│ [Заметка 2] │
|
||||||
|
│ [Заметка 3] │
|
||||||
|
└─────────────────────────────────────────────────┘
|
||||||
|
```
|
||||||
|
|
||||||
|
## Использование
|
||||||
|
|
||||||
|
1. Откройте страницу заметок (`/notes`)
|
||||||
|
2. Слева вы увидите календарь текущего месяца
|
||||||
|
3. Нажимайте кнопки `<` и `>` для навигации по месяцам
|
||||||
|
4. Нажимайте на любой день для выбора
|
||||||
|
5. Выбранный день будет выделен зелёным цветом
|
||||||
|
|
||||||
|
## Возможные расширения
|
||||||
|
|
||||||
|
- Фильтрация заметок по выбранной дате
|
||||||
|
- Отображение точек/маркеров на днях, в которые созданы заметки
|
||||||
|
- Всплывающие подсказки с предпросмотром заметок при наведении
|
||||||
|
- Возможность создания заметки на конкретную дату
|
||||||
|
- Синхронизация выбранной даты в календаре с фильтром заметок
|
||||||
|
|
||||||
|
## Тестирование
|
||||||
|
|
||||||
|
✅ Навигация между месяцами работает корректно
|
||||||
|
✅ Выделение текущего дня работает
|
||||||
|
✅ Выделение выбранного дня работает
|
||||||
|
✅ Адаптивный дизайн для мобильных устройств работает
|
||||||
|
✅ Нет ошибок в консоли браузера
|
||||||
|
✅ Стили правильно загружаются
|
||||||
|
|
||||||
|
## Версия
|
||||||
|
|
||||||
|
- Дата добавления: октябрь 2025
|
||||||
|
- Совместимость: все современные браузеры
|
||||||
Loading…
x
Reference in New Issue
Block a user