当前位置:首页 > CSS

css制作心跳效果

2026-04-01 16:40:30CSS

使用CSS动画制作心跳效果

通过CSS的@keyframestransform属性可以创建简单的心跳动画效果。以下是实现方法:

基础心跳动画

css制作心跳效果

.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);
  }
}

带阴影增强的版本

.pulse {
  animation: pulse 2s infinite;
}

@keyframes pulse {
  0% {
    transform: scale(0.95);
    box-shadow: 0 0 0 0 rgba(255, 0, 0, 0.7);
  }
  70% {
    transform: scale(1.1);
    box-shadow: 0 0 0 10px rgba(255, 0, 0, 0);
  }
  100% {
    transform: scale(0.95);
    box-shadow: 0 0 0 0 rgba(255, 0, 0, 0);
  }
}

使用CSS变量控制参数

:root {
  --heartbeat-scale: 1.2;
  --heartbeat-duration: 1s;
}

.custom-heartbeat {
  animation: custom-heartbeat var(--heartbeat-duration) ease-in-out infinite;
}

@keyframes custom-heartbeat {
  0%, 100% {
    transform: scale(1);
  }
  50% {
    transform: scale(var(--heartbeat-scale));
  }
}

应用于SVG心形图标

<svg class="heart" viewBox="0 0 32 32">
  <path d="M23.6 2c-3.4 0-6.3 2.7-7.6 5.6-1.3-2.9-4.2-5.6-7.6-5.6C4.2 2 0 6.2 0 11c0 11 12 19 16 19 4 0 16-8 16-19 0-4.8-4.2-9-8.4-9z"/>
</svg>

<style>
.heart {
  width: 100px;
  fill: red;
  animation: heartbeat 1s infinite alternate;
}
</style>

性能优化建议

  • 使用will-change: transform提升动画性能
  • 避免同时激活过多心跳元素
  • 考虑使用requestAnimationFrame替代CSS动画处理复杂场景

这些方法可以单独使用也可以组合使用,根据实际需求调整动画持续时间、缩放比例和缓动函数。

标签: 效果css
分享给朋友:

相关文章

css立体相册制作

css立体相册制作

制作CSS立体相册 使用CSS3的3D变换和过渡效果可以创建一个立体相册。以下是一个基本的实现方法。 HTML结构 <div class="photo-album"> <di…

css制作goole

css制作goole

使用CSS制作Google标志 Google标志由多彩的字母和简洁的字体组成,可以通过CSS的字体属性、颜色渐变和布局来实现。 字体选择 Google标志使用自定义字体"Product Sans",…

css制作雪花

css制作雪花

CSS 制作雪花效果 使用纯CSS可以创建简单的雪花动画效果,主要通过伪元素、动画和变换实现。 基础雪花结构 <div class="snowflake"></div> 六…

css网页制作教程

css网页制作教程

CSS网页制作基础教程 CSS(层叠样式表)用于控制网页的视觉表现,与HTML结合使用。以下为关键知识点和操作方法: HTML与CSS关联方式 内联样式:直接在HTML标签中使用style属性&l…

css 制作导航

css 制作导航

基础导航栏制作 使用HTML无序列表<ul>和CSS样式创建横向导航栏 <nav> <ul class="navbar"> <li><…

vue实现效果展示

vue实现效果展示

Vue 实现效果展示的方法 Vue.js 提供了多种方式来实现动态效果展示,以下是一些常见的方法: 使用 Vue 的过渡和动画系统 Vue 内置了 <transition> 和 <…