diff --git a/index.html b/index.html index 99ecaa1..dd0317c 100644 --- a/index.html +++ b/index.html @@ -235,5 +235,6 @@

Изображение успешно загруже + diff --git a/js/data.js b/js/data.js index c3c619c..d636de3 100644 --- a/js/data.js +++ b/js/data.js @@ -1,5 +1,5 @@ import {getRandomNumberFromInterval} from './util.js'; -const MESSAGES = ['', 'Всё отлично!В целом всё неплохо. Но не всё.', +const MESSAGES = ['ты лозор', 'Всё отлично!В целом всё неплохо. Но не всё.', 'Когда вы делаете фотографию, хорошо бы убирать палец из кадра. В конце концов это просто непрофессионально.', 'Моя бабушка случайно чихнула с фотоаппаратом в руках и у неё получилась фотография лучше.', 'Я поскользнулся на банановой кожуре и уронил фотоаппарат на кота и у меня получилась фотография лучше.', @@ -12,7 +12,7 @@ const LikesCount = { }; const getComments = (quantity, id) => new Array(quantity).fill('').map((_, messageId) => { - const mesIndex = getRandomNumberFromInterval(0, MESSAGES.length - 1); + const mesIndex = getRandomNumberFromInterval(1, MESSAGES.length - 1); return { id: `(${id}-${messageId})`, diff --git a/js/full-size-images.js b/js/full-size-images.js new file mode 100644 index 0000000..48639b7 --- /dev/null +++ b/js/full-size-images.js @@ -0,0 +1,49 @@ +const bigPicture = document.querySelector('.big-picture'); +const commentsCount = bigPicture.querySelector('.comments-count'); +const likesCount = bigPicture.querySelector('.likes-count'); +const bigImage = bigPicture.querySelector('.big-picture__img img'); +const description = bigPicture.querySelector('.social__caption'); + +const createComment = (avatar, name, text) => `
  • + + +
  • `; + + +const createCommentsBlock = (comments) =>{ + const commentsBlock = bigPicture.querySelector('.social__comments'); + commentsBlock.innerHTML = ''; + commentsBlock.insertAdjacentHTML('afterbegin', comments.map((comment) => createComment(comment.avatar, comment.name, comment.message)).join('')); // Array(comments).map +}; + + +const constructBigPicture = (picture, photos) =>{ + const likes = picture.querySelector('.picture__likes'); + const comments = picture.querySelector('.picture__comments'); + const image = picture.querySelector('.picture__img'); + const photoInfo = photos.find((photo) => `/${photo.url}` === new URL(image.src).pathname); + description.textContent = photoInfo.description; + likesCount.textContent = likes.textContent; + bigImage.src = image.src; + commentsCount.textContent = comments.textContent; + createCommentsBlock(photoInfo.comments, bigPicture); +}; + + +export const showBigPicture = (photos) => { + const pictures = document.querySelectorAll('.picture'); + for (const picture of pictures){ + picture.onclick = () =>{ + constructBigPicture(picture, photos); + bigPicture.classList.remove('hidden'); + bigPicture.querySelector('.social__comment-count').hidden = true; + bigPicture.querySelector('.comments-loader').hidden = true; + document.body.classList.add('modal-open'); + }; + } +}; + diff --git a/js/main.js b/js/main.js index c0d4745..0bebdfd 100644 --- a/js/main.js +++ b/js/main.js @@ -1,7 +1,9 @@ import {getPhotoDescriptions} from './data.js'; import {thumbnailsRender} from './thumbnails.js'; +import {showBigPicture} from './full-size-images.js'; const PHOTOS_COUNT = 25; const photos = getPhotoDescriptions(PHOTOS_COUNT); thumbnailsRender(photos); +showBigPicture(photos);