HTML+CSS制作心跳特效的实现
Here's an example of how to create a heartbeat effect using HTML and CSS:
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Heart Beat Effect</title>
<style>
/* Basic styles */
body {
margin: 0;
padding: 0;
display: flex;
align-items: center;
justify-content: center;
height: 100vh;
background-color: #f0f0f0;
}
/* Heart container */
.heart-container {
position: relative;
width: 80px;
height: 80px;
margin: 0 auto;
}
/* Heart shape */
.heart {
position: absolute;
width: 100%;
height: 100%;
background-color: #ff0000;
clip-path: path(
M40,20 C22.5,20 10,32.5 10,50 C10,67.5 22.5,80 40,80 C57.5,80 70,67.5 70,50 C70,32.5 57.5,20 40,20 Z
);
}
/* Animation */
.heart {
animation: heartbeat 1.2s ease-in-out infinite;
}
@keyframes heartbeat {
0% {
transform: scale(1);
}
50% {
transform: scale(1.1);
}
100% {
transform: scale(1);
}
}
</style>
</head>
<body>
<div class="heart-container">
<div class="heart"></div>
</div>
</body>
</html>
Explanation:
HTML Structure:
div
container with the class heart-container
to hold the heart shape.div
element with the class heart
is created to represent the heart shape.CSS Styles:
.heart-container
is positioned relative to allow absolute positioning of the heart..heart
is styled with width, height, background color, and a custom clip-path
to create the heart shape.heartbeat
animation is defined using @keyframes
to scale the heart up and down, creating a pulsating effect.Key Points:
clip-path
property uses an SVG path definition to create the non-rectangular shape of the heart.animation
property applies the heartbeat
animation to the .heart
element, making it scale periodically.ease-in-out
timing function provides a smooth acceleration and deceleration for the scaling effect.@keyframes
rule.