html、js、css实现爱心效果

好的!我们可以进一步美化这个爱心效果,增加更多动态和视觉吸引力。以下是改进后的代码,包括以下功能:

  1. 背景渐变:添加动态背景渐变效果。

  2. 爱心阴影:为爱心添加阴影,使其更具立体感。

  3. 随机颜色:点击时随机切换颜色,而不是固定顺序。

  4. 文字提示:在爱心下方添加文字提示,告诉用户可以点击切换颜色。

html 复制代码
---

### 美化后的代码

```html
<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>跳动爱心</title>
  <style>
    body {
      display: flex;
      justify-content: center;
      align-items: center;
      height: 100vh;
      margin: 0;
      background: linear-gradient(135deg, #ff9a9e, #fad0c4);
      animation: bgAnimation 10s infinite alternate;
    }

    @keyframes bgAnimation {
      0% {
        background: linear-gradient(135deg, #ff9a9e, #fad0c4);
      }
      50% {
        background: linear-gradient(135deg, #a1c4fd, #c2e9fb);
      }
      100% {
        background: linear-gradient(135deg, #fbc2eb, #a6c1ee);
      }
    }

    .heart-container {
      text-align: center;
    }

    .heart {
      width: 100px;
      height: 90px;
      position: relative;
      animation: beat 1s infinite;
      filter: drop-shadow(0 0 10px rgba(255, 0, 0, 0.7));
    }

    .heart::before,
    .heart::after {
      content: "";
      position: absolute;
      top: 0;
      width: 52px;
      height: 80px;
      background-color: var(--heart-color, red);
      border-radius: 50px 50px 0 0;
      box-shadow: 0 0 20px rgba(0, 0, 0, 0.3);
    }

    .heart::before {
      left: 50px;
      transform: rotate(-45deg);
      transform-origin: 0 100%;
    }

    .heart::after {
      left: 0;
      transform: rotate(45deg);
      transform-origin: 100% 100%;
    }

    @keyframes beat {
      0%, 100% {
        transform: scale(1);
      }
      50% {
        transform: scale(1.1);
      }
    }

    .text {
      margin-top: 20px;
      font-size: 18px;
      color: #fff;
      text-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
    }
  </style>
</head>
<body>
  <div class="heart-container">
    <div class="heart" id="heart"></div>
    <div class="text">点击爱心切换颜色 ❤️</div>
  </div>

  <script>
    const heart = document.getElementById('heart');

    // 随机颜色函数
    const getRandomColor = () => {
      const letters = '0123456789ABCDEF';
      let color = '#';
      for (let i = 0; i < 6; i++) {
        color += letters[Math.floor(Math.random() * 16)];
      }
      return color;
    };

    // 点击切换颜色
    heart.addEventListener('click', () => {
      const randomColor = getRandomColor();
      heart.style.setProperty('--heart-color', randomColor);
    });

    // 初始化颜色
    heart.style.setProperty('--heart-color', getRandomColor());
  </script>
</body>
</html>
```

---

新增功能说明

  1. 背景渐变动画:
  • 使用 `linear-gradient` 创建背景渐变效果。

  • 通过 `@keyframes` 实现背景颜色的动态变化。

  1. 爱心阴影:
  • 使用 `filter: drop-shadow()` 为爱心添加阴影,使其更具立体感。
  1. 随机颜色切换:
  • 点击爱心时,使用 `getRandomColor()` 函数生成随机颜色,并应用到爱心上。
  1. 文字提示:
  • 在爱心下方添加文字提示,告诉用户可以点击切换颜色。

运行效果

  1. 打开浏览器,运行代码。

  2. 你会看到一个跳动的爱心,背景颜色会动态变化。

  3. 点击爱心,颜色会随机切换。

  4. 爱心下方会显示提示文字:"点击爱心切换颜色 ❤️"。


希望这个美化后的版本能满足你的需求!如果还有其他想法或需要进一步调整,请随时告诉我! 😊

相关推荐
子兮曰10 分钟前
后端字段又改了?我撸了一个 BFF 数据适配器,从此再也不怕接口“屎山”!
前端·javascript·架构
万少2 小时前
使用Trae轻松安装openclaw的教程-附带免费token
前端·openai·ai编程
浪浪山_大橙子2 小时前
OpenClaw 十分钟快速,安装与接入完全指南 - 推荐使用trae 官方 skills 安装
前端·人工智能
忆江南2 小时前
iOS 可视化埋点与无痕埋点详解
前端
离开地球表面_992 小时前
金三银四程序员跳槽指南:从简历到面试再到 Offer 的全流程准备
前端·后端·面试
_柳青杨2 小时前
跨域获取 iframe 选中文本?自己写个代理中间层,再也不求后端!
前端
比尔盖茨的大脑2 小时前
事件循环底层原理:从 V8 引擎到浏览器实现
前端·javascript·面试
天才熊猫君2 小时前
Vue3 命令式弹窗原理和 provide/inject 隔离机制详解
前端
bluceli2 小时前
Vue 3 Composition API深度解析:构建可复用逻辑的终极方案
前端·vue.js
程序员ys2 小时前
前端权限控制设计
前端·vue.js·react.js