Skip to content

Instantly share code, notes, and snippets.

@avermeulen
Created June 20, 2018 09:27
Show Gist options
  • Save avermeulen/290f3c3228908925ed802c4e4f98b32f to your computer and use it in GitHub Desktop.
Save avermeulen/290f3c3228908925ed802c4e4f98b32f to your computer and use it in GitHub Desktop.
How to do stars ratings
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title></title>
<style media="screen">
.show {
display: block;
}
.hidden {
display: none;
}
</style>
</head>
<body>
<div class="stars">
<div class="star" data-rating="1">*</div>
<div class="star" data-rating="2">**</div>
<div class="star" data-rating="3">***</div>
<div class="star" data-rating="4">****</div>
<div class="star" data-rating="5">*****</div>
</div>
<div class="">
<div class="rating hidden" data-rating="1">*</div>
<div class="rating hidden" data-rating="2">**</div>
<div class="rating hidden" data-rating="3">***</div>
<div class="rating hidden" data-rating="4">****</div>
<div class="rating hidden" data-rating="5">*****</div>
</div>
</body>
<script type="text/javascript">
var stars = document.querySelector(".stars");
var ratings = document.querySelectorAll('.rating');
stars.addEventListener('click', function(evt) {
var currentRating = Number(evt.target.dataset.rating);
// hide all
for (var i = 0; i < ratings.length; i++) {
// remove all the checked options
ratings[i].classList.add("hidden");
}
// showing the right ones
for (var i = 1; i <= currentRating; i++) {
// add checked to all the right ones
ratings[i-1].classList.remove("hidden");
}
});
</script>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment