Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found

Submitted

Frontend Mentor - Interactive rating component solution by Emmanuel

#gsap

@Emmanuel-Xs

Desktop design screenshot for the Interactive rating component coding challenge

This is a solution for...

  • HTML
  • CSS
  • JS
1newbie
View challenge

Design comparison


SolutionDesign

Solution retrospective


After selecting a rating, I want to be able to remove it after selecting it again

Community feedback

P

@Eileenpk

Posted

Hi Emmanuel! your project looks really good, I love how you used gsap for the animation, it was a really nice touch.

To be able to remove the active class if a rating is already selected add this code

ratingsContainer.addEventListener("click", (e) => {
	if (!e.target.matches(".rating")) return

	// Check if the clicked rating button already has the "active" class
	let alreadyActive = e.target.classList.contains("active")

	ratings.forEach((rating) => rating.classList.remove("active"))

	// If the clicked rating button was already active, remove the "active" class and return
	if (alreadyActive) return

	let selectedRating = e.target
	selectedRating.classList.add("active")
	let selectedRatingValue = selectedRating.textContent

	// Rest of the code...
})

Also, consider moving the button.addEventListener() outside the ratingsContainer.addEventListener() to avoid creating a new event listener every time a rating is clicked.

Hope you found this helpful!

1

@Emmanuel-Xs

Posted

Okay, let me try your solution out. I created the button eventListener inside the inputs to ensure the user clicks a rating before submitting without writing extra code. However, from what you said, it creates multiple click events for the button that may slow down the browser's overall speed. So, I will do as you say.

Thank you very much I tried it and it worked. I really appreciated

0

Please log in to post a comment

Log in with GitHub
Discord logo

Join our Discord community

Join thousands of Frontend Mentor community members taking the challenges, sharing resources, helping each other, and chatting about all things front-end!

Join our Discord