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

html、js、css实现爱心效果

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

1. 背景渐变:添加动态背景渐变效果。
2. 爱心阴影:为爱心添加阴影,使其更具立体感。
3. 随机颜色:点击时随机切换颜色,而不是固定顺序。
4. 文字提示:在爱心下方添加文字提示,告诉用户可以点击切换颜色。

---

### 美化后的代码

```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` 实现背景颜色的动态变化。

2. 爱心阴影:
   - 使用 `filter: drop-shadow()` 为爱心添加阴影,使其更具立体感。

3. 随机颜色切换:
   - 点击爱心时,使用 `getRandomColor()` 函数生成随机颜色,并应用到爱心上。

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

---

 运行效果

1. 打开浏览器,运行代码。
2. 你会看到一个跳动的爱心,背景颜色会动态变化。
3. 点击爱心,颜色会随机切换。
4. 爱心下方会显示提示文字:“点击爱心切换颜色 ❤️”。

---

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


http://www.kler.cn/a/515463.html

相关文章:

  • 深入探究 YOLOv5:从优势到模型导出全方位解析
  • Kotlin基础知识学习(三)
  • vue3中为什么引入setup,引入setup是为了解决什么问题,setup的执行时机是什么?返回值是什么
  • Apache Hive 聚合函数与 OVER 窗口函数:从基础到高级应用
  • 【云网】云网络基础概念(华为云)
  • AI需要的基础数学知识
  • 消息队列篇--原理篇--Pulsar(Namespace,BookKeeper,类似Kafka甚至更好的消息队列)
  • I2S是什么通信协议?它如何传输音频数据?它和I2C是什么关系?
  • flutter_学习记录_00_环境搭建
  • 华为OD机试真题---战场索敌
  • 【MySQL】C# 连接MySQL
  • 面向对象编程——类的描述与项目文档
  • AIGC大模型详解(ChatGPT,Cursor,豆包,文心一格)
  • 【Hadoop面试题2025】
  • 鸿蒙harmony json转对象(2)
  • Gin 框架入门实战系列教程
  • C Linux 下常用锁介绍
  • python实战(十五)——中文手写体数字图像CNN分类
  • 【Oracle专栏】DBMS_CRYPTO 加密包、AES加解密
  • HTML常用属性
  • Python头歌实验题目(2024版)
  • 【Linux】APT 密钥管理:官方推荐的解决方案应对 apt-key 弃用
  • J1打卡——鸟类识别
  • 智慧公安(实景三维公安基层基础平台)建设方案——第4章
  • Spring的条件加载
  • Github配置ssh详细步骤