This code snippet allows you to create a delightful falling heart animation on your web page. The animation is implemented using CSS and JavaScript. Hearts will fall from the top of the screen to the bottom with a smooth motion. The animation duration and position of the hearts are randomized to create a dynamic effect.
Simply include this code in your HTML file, and you’ll have a charming falling heart animation to enhance your website’s visual appeal.
How to Create Falling Heart Animation in CSS
Create the HTML structure as follows:
<body> <h1>Heart Rain Animation</h1> </body>
Style using the following CSS styles for falling heart animation:
@import url("https://fonts.googleapis.com/css2?family=Pacifico:wght@200;400;600&display=swap");
@import url("https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.1/css/all.min.css");
* {
box-sizing: border-box;
}
.cd__main{
background: pink !important;
font-family: 'Pacifico', cursive !important;
min-height: 450px;
}
body {
background-color: pink;
display: flex;
align-items: center;
justify-content: center;
font-family: 'Pacifico', cursive;
margin: 0;
min-height: 100vh;
}
.heart {
position: fixed;
font-size: 1.5rem;
top: -1vh;
transform: translateY(0);
animation: fall 3s linear forwards;
}
@keyframes fall {
from {
transform: translateY(0vh) translateX(-10vw);
}
to {
transform: translateY(105vh) translateX(10vw);
}
}
Add the following JavaScript function:
function createHeart() {
const heart = document.createElement('div');
heart.classList.add('heart');
heart.style.left = Math.random() * 100 + "vw";
heart.style.animationDuration = Math.random() * 2 + 3 + "s";
heart.innerText = '💗';
document.body.appendChild(heart);
setTimeout(() => {
heart.remove();
}, 5000);
}
setInterval(createHeart, 300);
That’s all! hopefully, you have successfully integrated this falling hearts animation into your project. If you have any questions or suggestions, feel free to comment below.