Double Click Animation Using HTML, CSS and JavaScript

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

Preview 

In the above video, you’ve seen the preview of the "Double Click Animation" 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. 

Double Click Animation [Source Code] 

To get the following HTML, CSS & JS code for the Double Click Animation project. You need to create three files one is an HTML file, the second one is a CSS file and another one is a 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 a .html extension for HTML code, a .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>Double Click Animation</title>

    <link rel="stylesheet" href="style.css">

    <!-- Font Awesome  -->
    <script src="https://kit.fontawesome.com/ebb335c6c8.js" crossorigin="anonymous"></script>
</head>

<body>
    <h1>Double Click Animation</h1>

    <div class="container">
        <i class="fa-solid fa-heart"></i>
    </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 {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  min-height: 100vh;
  background-color: lightgrey;
}

h1 {
  margin-bottom: 10px;
  color: darkcyan;
}

.container {
  position: relative;
  width: 300px;
  height: 400px;
  background: url("iamge.jpg");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  border-radius: 10%;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
  cursor: pointer;
}

i {
  color: red;
  position: absolute;
  font-size: 40px;
  opacity: 0;
}

i.active {
  animation: heart 1s linear forwards;
}

@keyframes heart {
  10% {
    transform: scale(1.2);
    opacity: 0.8;
  }
  30% {
    transform: scale(1.1);
  }
  50% {
    opacity: 0.8;
    transform: scale(1);
  }
  70% {
    transform: scale(1.1);
  }
  90% {
    transform: scale(1.2);
    opacity: 0.8;
  }
}
JavaScript
const containerEl = document.querySelector(".container");
const iEl = document.querySelector("i");

// whenever we double click on the container it displays heart at the click position.
containerEl.addEventListener("dblclick", (e) => {

    let x = e.pageX - e.target.offsetLeft - 15;
    let y = e.pageY - e.target.offsetTop - 15;

    iEl.style.left = `${x}px`;
    iEl.style.top = `${y}px`;

    // adding active class
    iEl.classList.add("active");

    // removing active class after 1.5sec
    setTimeout(() => {
        iEl.classList.remove("active");
    }, 1500);

});
You have to wait 15 seconds.

Generating Download Link...

Post a Comment

Previous Post Next Post