Customer Feedback Using HTML, CSS & JavaScript



Hello wizards, I hope you are doing great. Today in this blog you’ll learn how to create the "Customer Feedback" project using HTML, CSS & JavaScript. 

Preview 


In the above video, you’ve seen the preview of the "Customer Feedback" project and I hope now you are able to create this type of project. If not, I have provided all the HTML CSS and JavaScript code below. 

Customer Feedback [Source Code] 

To get the following HTML, CSS & JS code for the Customer Feedback project. You need to create three files one is a HTML file, second one is a CSS file and the another one is JS file. After creating these three files then you can copy-paste the given codes on your document. 

Remember, you’ve to create a file with .html extension for HTML code, .css extension for CSS code and .js for JavaScript code.

You can also download all source code files from the given download button.

HTML
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Customer Feedback</title>
    <link rel="stylesheet" href="style.css">
    <!-- Font Awesome cdn link -->
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"
        integrity="sha512-iecdLmaskl7CVkqkXNQ/ZH/XLlvWZOJyj7Yy7tcenmpD1ypASozpmT/E0iPtmFIB46ZmdtAc9eNBvH0H/ZpiBw=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>

<body>

    <div class="container">
        <h1>Customer Feedback</h1>
        <div class="circle">
            <div class="emojis">
                <img src="images/very_poor.webp" alt="very_poor">
                <img src="images/poor.webp" alt="poor">
                <img src="images/average.webp" alt="average">
                <img src="images/good.webp" alt="good">
                <img src="images/excellent.webp" alt="excellent">
            </div>
        </div>
        <div class="rating-names">
            <div class="names">
                <h3>Very poor</h3>
                <h3>Poor</h3>
                <h3>Average</h3>
                <h3>Good</h3>
                <h3>Excellent</h3>
            </div>
        </div>
        <div class="stars">
            <i class="fa-solid fa-star"></i>
            <i class="fa-solid fa-star"></i>
            <i class="fa-solid fa-star"></i>
            <i class="fa-solid fa-star"></i>
            <i class="fa-solid fa-star"></i>
        </div>
    </div>

    <script src="index.js"></script>
</body>

</html>
CSS
@import url("https://fonts.googleapis.com/css2?family=Poppins:wght@100;200;300;400;500;600;700;800;900&display=swap");

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  font-family: "Poppins", sans-serif;
}

body {
  background: black;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100vh;
}

.container,
.circle,
.rating-names,
.stars {
  display: flex;
  align-items: center;
  justify-content: center;
}

.container {
  background-color: white;
  width: 550px;
  height: 400px;
  padding: 20px;
  flex-direction: column;
  gap: 20px;
  border-radius: 10px;
}

.container h1 {
  margin-top: -20px;
  text-transform: uppercase;
  word-spacing: 5px;
  font-size: 40px;
}

.circle {
  width: 100px;
  height: 100px;
  overflow: hidden;
  border-radius: 50%;
}

.circle .emojis {
  display: flex;
  gap: 20px;
  transform: translateX(180px);
  transition: all 0.3s ease-in-out;
}

.circle .emojis img {
  width: 70px;
}

.rating-names {
  text-align: center;
  width: 150px;
  height: 40px;
  background-color: black;
  color: white;
  line-height: 40px;
  border-radius: 20px;
  overflow: hidden;
}

.rating-names .names {
  transform: translateY(80px);
  transition: all 0.3s ease-in-out;
}

.stars {
  gap: 30px;
  margin-top: 20px;
}

.stars i {
  font-size: 50px;
  color: black;
  cursor: pointer;
}
JavaScript
const emojisEL = document.querySelector(".emojis");

const starsEl = document.querySelectorAll(".fa-solid")

const ratingNamesEl = document.querySelector(".names")

starsEl[0].addEventListener("click",()=>{
    starsEl[0].style.color = "gold";
    starsEl[1].style.color = "black";
    starsEl[2].style.color = "black";
    starsEl[3].style.color = "black";
    starsEl[4].style.color = "black";
    emojisEL.style.transform = "translateX(180px)";
    ratingNamesEl.style.transform = "translateY(80px)"
})

starsEl[1].addEventListener("click",()=>{
    starsEl[0].style.color = "gold";
    starsEl[1].style.color = "gold";
    starsEl[2].style.color = "black";
    starsEl[3].style.color = "black";
    starsEl[4].style.color = "black";
    emojisEL.style.transform = "translateX(90px)";
    ratingNamesEl.style.transform = "translateY(40px)"
})

starsEl[2].addEventListener("click",()=>{
    starsEl[0].style.color = "gold";
    starsEl[1].style.color = "gold";
    starsEl[2].style.color = "gold";
    starsEl[3].style.color = "black";
    starsEl[4].style.color = "black";
    emojisEL.style.transform = "translateX(0px)";
    ratingNamesEl.style.transform = "translateY(0px)"
})

starsEl[3].addEventListener("click",()=>{
    starsEl[0].style.color = "gold";
    starsEl[1].style.color = "gold";
    starsEl[2].style.color = "gold";
    starsEl[3].style.color = "gold";
    starsEl[4].style.color = "black";
    emojisEL.style.transform = "translateX(-90px)";
    ratingNamesEl.style.transform = "translateY(-40px)"
})

starsEl[4].addEventListener("click",()=>{
    starsEl[0].style.color = "gold";
    starsEl[1].style.color = "gold";
    starsEl[2].style.color = "gold";
    starsEl[3].style.color = "gold";
    starsEl[4].style.color = "gold";
    emojisEL.style.transform = "translateX(-180px)";
    ratingNamesEl.style.transform = "translateY(-80px)"
})
You have to wait 15 seconds.

Generating Download Link...

Post a Comment

Previous Post Next Post