From e3494a84adaa7418785e50496ef3baf7750489cc Mon Sep 17 00:00:00 2001 From: Leskovets Maksym Date: Mon, 26 Feb 2024 14:26:27 +0100 Subject: [PATCH 1/4] added stars-rating --- src/css/rating-popup.css | 10 ++++++++++ src/js/rating-popup.js | 16 ++++++++++++++-- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/src/css/rating-popup.css b/src/css/rating-popup.css index f5585f4..65599cd 100644 --- a/src/css/rating-popup.css +++ b/src/css/rating-popup.css @@ -62,6 +62,16 @@ fill: var(--rating-color); } +.modal-rating__rating polygon:hover { + cursor: pointer; + fill: var(--accent-color); + transition: all var(--tran-icon); +} + +.modal-rating__rating polygon.active { + fill: var(--accent-color); +} + .modal-rating__form { display: flex; flex-direction: column; diff --git a/src/js/rating-popup.js b/src/js/rating-popup.js index 8932692..515eb2b 100644 --- a/src/js/rating-popup.js +++ b/src/js/rating-popup.js @@ -9,8 +9,10 @@ export function openModalRating() { modalRating.innerHTML = markUp(); showModalRating(); - const closeModalRatingButton = document.querySelector('.js-modal-rating__btn-close'); + const closeModalRatingButton = document.querySelector('.js-modal-rating__btn-close'); + const starsIcons = document.querySelector('.js-stars-svg'); closeModalRatingButton.addEventListener('click', closeModalRating); + starsIcons.addEventListener('click', changeStarsRating) }; function showModalRating() { @@ -23,6 +25,16 @@ function closeModalRating() { modalRating.classList.add('hidden'); }; +function changeStarsRating(e) { + const starsIcons = document.querySelector('.js-stars-svg'); + let value = e.target.dataset.value; + value && (starsIcons.parentNode.dataset.value = value); + starsIcons.querySelectorAll('polygon').forEach(star => { + let on = starsIcons.parentNode.dataset.value >= star.dataset.value; + star.classList.toggle('active', on); + }); +}; + function markUp() { return `