|
5 | 5 |
|
6 | 6 | Описание функциональности |
7 | 7 |
|
8 | | -1. Загрузка нового изображения на сайт и заполнение информации о нём |
| 8 | ++ 1. Загрузка нового изображения на сайт и заполнение информации о нём |
9 | 9 |
|
10 | 10 | + 1.1. Загрузка нового изображения: |
11 | 11 | выбор файла с изображением для загрузки; |
|
27 | 27 | Элементу .img-upload__overlay возвращается класс hidden. У элемента body удаляется класс modal-open. |
28 | 28 |
|
29 | 29 |
|
30 | | -2. Редактирование изображения и ограничения, накладываемые на поля |
| 30 | ++ 2. Редактирование изображения и ограничения, накладываемые на поля |
31 | 31 |
|
32 | 32 | + 2.1. Масштаб: |
33 | 33 | При нажатии на кнопки .scale__control--smaller и .scale__control--bigger должно изменяться значение поля .scale__control--value; |
|
94 | 94 | поля для ввода хэштегов и комментария очищаются; |
95 | 95 | поле загрузки фотографии, стилизованное под букву «О» в логотипе, очищается. |
96 | 96 |
|
97 | | -3.4. Если отправка данных прошла успешно, показывается соответствующее сообщение. Разметку сообщения, которая находится в блоке #success внутри шаблона template, нужно разместить перед закрывающим тегом </body>. Сообщение должно удаляться со страницы после нажатия на кнопку .success__button, по нажатию на клавишу Esc и по клику на произвольную область экрана за пределами блока с сообщением. |
| 97 | ++ 3.4. Если отправка данных прошла успешно, показывается соответствующее сообщение. Разметку сообщения, которая находится в блоке #success внутри шаблона template, нужно разместить перед закрывающим тегом </body>. Сообщение должно удаляться со страницы после нажатия на кнопку .success__button, по нажатию на клавишу Esc и по клику на произвольную область экрана за пределами блока с сообщением. |
98 | 98 |
|
99 | | -3.5. Если при отправке данных произошла ошибка запроса, нужно показать соответствующее сообщение. Разметку сообщения, которая находится в блоке #error внутри шаблона template, нужно разместить перед закрывающим тегом </body>. Сообщение должно удаляться со страницы после нажатия на кнопку .error__button, по нажатию на клавишу Esc и по клику на произвольную область экрана за пределами блока с сообщением. В таком случае вся введённая пользователем информация сохраняется, чтобы у него была возможность отправить форму повторно. |
| 99 | ++ 3.5. Если при отправке данных произошла ошибка запроса, нужно показать соответствующее сообщение. Разметку сообщения, которая находится в блоке #error внутри шаблона template, нужно разместить перед закрывающим тегом </body>. Сообщение должно удаляться со страницы после нажатия на кнопку .error__button, по нажатию на клавишу Esc и по клику на произвольную область экрана за пределами блока с сообщением. В таком случае вся введённая пользователем информация сохраняется, чтобы у него была возможность отправить форму повторно. |
100 | 100 |
|
101 | 101 | + 3.6. Нажатие на кнопку .img-upload__cancel приводит к закрытию формы и возвращению всех данных и контрола фильтра к исходному состоянию (описано в пункте 3.3). Поле загрузки фотографии, стилизованное под букву «О» в логотипе, очищается. |
102 | 102 |
|
103 | 103 | 4. Просмотр загруженных изображений |
104 | | -4.1. Загрузка изображений от других пользователей производится сразу после открытия страницы с удалённого сервера: https://31.javascript.htmlacademy.pro/kekstagram/data. |
| 104 | ++ 4.1. Загрузка изображений от других пользователей производится сразу после открытия страницы с удалённого сервера: https://31.javascript.htmlacademy.pro/kekstagram/data. |
105 | 105 |
|
106 | | -4.2. Если при загрузке данных с сервера произошла ошибка запроса, нужно показать соответствующее сообщение. Разметку сообщения, которая находится в блоке #data-error внутри шаблона template, нужно разместить перед закрывающим тегом </body>. Сообщение удаляется со страницы через 5 секунд. |
| 106 | ++ 4.2. Если при загрузке данных с сервера произошла ошибка запроса, нужно показать соответствующее сообщение. Разметку сообщения, которая находится в блоке #data-error внутри шаблона template, нужно разместить перед закрывающим тегом </body>. Сообщение удаляется со страницы через 5 секунд. |
107 | 107 |
|
108 | | -4.3. Все загруженные изображения показаны на главной странице в виде миниатюр. DOM-элемент миниатюры генерируется на основе шаблонного элемента picture, расположенного в элементе template на странице. |
| 108 | ++ 4.3. Все загруженные изображения показаны на главной странице в виде миниатюр. DOM-элемент миниатюры генерируется на основе шаблонного элемента picture, расположенного в элементе template на странице. |
109 | 109 |
|
110 | | -4.4. При нажатии на любую из миниатюр, показывается блок .big-picture, содержащий полноэкранное изображение с количеством лайков и комментариев. Элементу body задаётся класс modal-open. Данные, описывающие изображение, должны подставляться в соответствующие элементы в разметке. |
| 110 | ++ 4.4. При нажатии на любую из миниатюр, показывается блок .big-picture, содержащий полноэкранное изображение с количеством лайков и комментариев. Элементу body задаётся класс modal-open. Данные, описывающие изображение, должны подставляться в соответствующие элементы в разметке. |
111 | 111 |
|
112 | | -4.5. Выход из полноэкранного режима просмотра фотографии осуществляется либо нажатием на иконку крестика .big-picture__cancel в правом верхнем углу блока .big-picture, либо нажатием на клавишу Esc. У элемента body удаляется класс modal-open. |
| 112 | ++ 4.5. Выход из полноэкранного режима просмотра фотографии осуществляется либо нажатием на иконку крестика .big-picture__cancel в правом верхнем углу блока .big-picture, либо нажатием на клавишу Esc. У элемента body удаляется класс modal-open. |
113 | 113 |
|
114 | | -4.6. Все комментарии к изображению выводятся в блок .social__comments. Сразу после открытия изображения в полноэкранном режиме отображается не более 5 комментариев. Количество показанных комментариев и общее число комментариев отображается в блоке .social__comment-count. Пример разметки списка комментариев приведён в блоке .social__comments. Комментарий оформляется отдельным элементом списка li с классом social__comment. Аватарка автора комментария отображается в блоке .social__picture. Имя автора комментария отображается в атрибуте alt его аватарки. Текст комментария выводится в блоке .social__text. |
| 114 | ++ 4.6. Все комментарии к изображению выводятся в блок .social__comments. Сразу после открытия изображения в полноэкранном режиме отображается не более 5 комментариев. Количество показанных комментариев и общее число комментариев отображается в блоке .social__comment-count. Пример разметки списка комментариев приведён в блоке .social__comments. Комментарий оформляется отдельным элементом списка li с классом social__comment. Аватарка автора комментария отображается в блоке .social__picture. Имя автора комментария отображается в атрибуте alt его аватарки. Текст комментария выводится в блоке .social__text. |
115 | 115 |
|
116 | | -4.7. Отображение дополнительных комментариев происходит при нажатии на кнопку .comments-loader. При нажатии на кнопку отображается не более 5 новых комментариев. При изменении количества показанных комментариев число показанных комментариев в блоке .social__comment-count также изменяется. |
| 116 | ++ 4.7. Отображение дополнительных комментариев происходит при нажатии на кнопку .comments-loader. При нажатии на кнопку отображается не более 5 новых комментариев. При изменении количества показанных комментариев число показанных комментариев в блоке .social__comment-count также изменяется. |
117 | 117 |
|
118 | | -4.8. Если все комментарии показаны, кнопку .comments-loader следует скрыть, добавив класс hidden. |
| 118 | ++ 4.8. Если все комментарии показаны, кнопку .comments-loader следует скрыть, добавив класс hidden. |
119 | 119 |
|
120 | 120 | 5. Фильтрация изображений от других пользователей |
121 | | -5.1. Доступные фильтры: |
| 121 | + |
| 122 | ++ 5.1. Доступные фильтры: |
122 | 123 | «По умолчанию» — фотографии в изначальном порядке с сервера; |
123 | 124 | «Случайные» — 10 случайных, не повторяющихся фотографий; |
124 | 125 | «Обсуждаемые» — фотографии, отсортированные в порядке убывания количества комментариев. |
125 | | -5.2. Блок, с помощью которого производится фильтрация фотографий, скрыт изначально и показывается только после получения от сервера данных об изображениях других пользователей. |
126 | 126 |
|
127 | | -5.3. При переключении фильтров, отрисовка изображений, подходящих под новый фильтр, должна производиться не чаще, чем один раз 500 мс (устранение дребезга). |
| 127 | ++ 5.2. Блок, с помощью которого производится фильтрация фотографий, скрыт изначально и показывается только после получения от сервера данных об изображениях других пользователей. |
| 128 | + |
| 129 | ++ 5.3. При переключении фильтров, отрисовка изображений, подходящих под новый фильтр, должна производиться не чаще, чем один раз 500 мс (устранение дребезга). |
128 | 130 |
|
129 | 131 |
|
130 | 132 | Дополнительные задания: |
|
0 commit comments