当前位置: 首页 > news >正文

【开源宝藏】30天学会CSS - DAY8 第八课 跳动的爱心动画

下面是一个逐步拆解教程,带你手把手复刻这个 跳动的爱心动画。你将学到如何通过 CSS 画出一个心形,并配合 @keyframes 实现心跳效果。


在这里插入图片描述

🎯 效果简介

  • 页面背景为深灰色。
  • 页面中央显示一个粉红色爱心图案。
  • 爱心随着节奏跳动(缩放 + 放大)。

🧱 第 0 步:项目结构

heart-beat-animation/
├── index.html     # HTML 文件,定义结构
└── style.css      # CSS 文件,控制样式与动画

🔤 第 1 步:HTML 结构

打开 index.html,内容非常简单:

<!DOCTYPE html>
<html lang="pt-br">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="style.css">
    <title>Coração</title> <!-- 葡萄牙语:心脏/爱心 -->
</head>
<body>
    <div class="coracao"></div> <!-- 一个 div 就是爱心 -->
</body>
</html>

✅ 说明:

  • <div class="coracao"></div>:整个爱心动画就是靠这一个 div 完成的。
  • 后续我们会用 ::before::after 做出两个圆,与主方块合并成一个“心形”。

🎨 第 2 步:页面背景与居中

style.css 中,先设置全屏背景和居中布局:

body {
    height: 100vh;                     /* 让 body 高度占满整个视口 */
    display: flex;
    justify-content: center;          /* 水平居中 */
    align-items: center;              /* 垂直居中 */
    font-family: 'Lato', sans-serif;  /* 可选字体 */
    background-color: #262626;        /* 深灰背景 */
}

❤️ 第 3 步:构造心形图案

接下来看 .coracao 这个类:

.coracao {
    position: relative;
    width: 100px;
    height: 100px;
    background-color: rgb(247, 72, 72);  /* 红色主心块 */
    transform: rotate(45deg);            /* 旋转出心形倾角 */
    animation: batidao 1.4s linear infinite; /* 执行跳动动画 */
}

🧠 原理

  • 一个方块 100x100px,填充红色。
  • 旋转 45 度后就变成了一个“菱形”。
  • 后面会用 ::before::after 添加两个圆形,分别贴在左上和右上。
  • 三者合体就是一个心形图案

💡 第 4 步:添加圆形伪元素

这是关键 —— 用两个伪元素完成心形的“上两个圆”。

.coracao::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgb(247, 72, 72);
    transform: translateY(-50%);
    border-radius: 50%;
}

.coracao::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgb(247, 72, 72);
    transform: translateX(-50%);
    border-radius: 50%;
}

🔍 解析

  • .coracao::before
    • 向上移动 50%,形成左上角的半圆。
  • .coracao::after
    • 向左移动 50%,形成右上角的半圆。
  • 二者分别是一个完整圆,但我们只露出一半,使它们和主方块组合起来看起来像一个 ❤️。

💓 第 5 步:定义心跳动画

接下来是最有趣的部分:心跳效果!

@keyframes batidao {
    0%   { transform: rotate(45deg) scale(1); }
    25%  { transform: rotate(45deg) scale(1); }
    30%  { transform: rotate(45deg) scale(1.4); }
    50%  { transform: rotate(45deg) scale(1.2); }
    70%  { transform: rotate(45deg) scale(1.4); }
    100% { transform: rotate(45deg) scale(1); }
}

❤️ 心跳节奏说明:

  • 0% → 25%:保持不动(收缩)
  • 30%:快速放大(跳一下)
  • 50%:稍微缩回一点点
  • 70%:再次跳起
  • 100%:回到原状态,准备下一轮

这个节奏让爱心 “砰砰跳动”,形成有生命感的效果。


✅ 最终效果预览

  • 页面背景是深灰色。
  • 屏幕正中央有一个粉红色爱心。
  • 爱心以一定节奏不断跳动,大小变换显得非常有律动感。

🧪 可选拓展

  1. 调整颜色

    background-color: hotpink; /* 更少女心风格 */
    
  2. 添加阴影

    box-shadow: 0 0 20px rgba(255, 0, 0, 0.4);
    
  3. 加个“LOVE”文字

    <div class="coracao">
      <div class="texto">LOVE</div>
    </div>
    

    然后在 CSS 里:

    .coracao .texto {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%) rotate(-45deg);
        color: white;
        font-weight: bold;
        z-index: 1000;
    }
    

📌 总结

技术点用法说明
::before/after制作半圆补足爱心上半部分
transform: rotate旋转主方块成心形基本形状
scale()缩放模拟跳动感
animation + @keyframes完成节奏控制与循环跳动

相关文章:

  • 嵌入式八股文学习——基类构造与析构、成员初始化及继承特性详解
  • RAG核心概念
  • 蓝桥杯备考:差分数组+贪心Tallest Cow S
  • uv:Rust 驱动的 Python 包管理新时代
  • 里氏替换原则
  • SQL-查询漏洞
  • 通过国内源在Ubuntu20.0.4安装repo
  • 【时时三省】(C语言基础)用if语句实现选择结构
  • 多层感知机实现
  • Qt 线程类
  • 在普通用户下修改root用户密码
  • python中闭包与装饰器
  • DeepSeek助力Vue开发:打造丝滑的键盘快捷键
  • 使用 LLaMA-Factory 微调 llama3 模型
  • LeetCode热题100JS(74/100)第十四天|155|394|739|84|215
  • 【网络安全 | 漏洞挖掘】绕过管理员权限撤销的访问控制漏洞
  • Walrus 基金会完成 1.4 亿美元融资,由 Standard Crypto 领投
  • aab 转 apk
  • 笔试面试01 c/c++
  • 菜鸟的程序编程理解
  • 铜川免费做网站/seo职位招聘
  • 做网站之前需要准备什么条件/软件推广平台有哪些?哪个比较好
  • java 网站制作/做营销策划的公司
  • 网站建设开发报告/制作网页链接
  • 新疆住房城乡建设厅网站/优化推广网站推荐
  • 南通市建设委员会网站/seo相关岗位