css制作心跳效果
使用CSS动画制作心跳效果
通过CSS的@keyframes和transform属性可以轻松实现心跳动画效果。以下是两种常见实现方式:
基础缩放动画
.heartbeat {
animation: heartbeat 1.5s ease-in-out infinite both;
}
@keyframes heartbeat {
0% { transform: scale(1); }
14% { transform: scale(1.3); }
28% { transform: scale(1); }
42% { transform: scale(1.3); }
70% { transform: scale(1); }
}
结合透明度的进阶效果
.heartbeat {
animation: heartbeat 1.5s ease-in-out infinite;
}
@keyframes heartbeat {
0% {
transform: scale(1);
opacity: 0.8;
}
50% {
transform: scale(1.2);
opacity: 1;
}
100% {
transform: scale(1);
opacity: 0.8;
}
}
使用伪元素增强视觉效果
通过::before和::after伪元素可以创建更立体化的心脏形状:
.heart {
width: 100px;
height: 100px;
position: relative;
animation: heartbeat 1s infinite;
background-color: red;
transform: rotate(45deg);
}
.heart::before,
.heart::after {
content: "";
width: 100px;
height: 100px;
border-radius: 50%;
background-color: red;
position: absolute;
}
.heart::before {
top: -50px;
left: 0;
}
.heart::after {
top: 0;
left: -50px;
}
控制动画节奏的技巧
调整动画时间函数可以改变心跳的生理感:
animation-timing-function: cubic-bezier(0.785, 0.135, 0.15, 0.86);
多阶段动画示例:
@keyframes heartbeat {
0% { transform: scale(0.95); }
5% { transform: scale(1.1); }
10% { transform: scale(0.95); }
15% { transform: scale(1.1); }
50% { transform: scale(0.95); }
100% { transform: scale(0.95); }
}
响应式设计考虑
添加媒体查询确保移动设备表现:
@media (max-width: 768px) {
.heartbeat {
animation-duration: 2s;
}
}
性能优化建议
使用will-change属性提升动画性能:
.heartbeat {
will-change: transform;
backface-visibility: hidden;
}
这些方法可以单独使用或组合使用,根据实际需求调整动画持续时间、缩放比例和节奏曲线即可获得理想的心跳效果。







