html、js、css实现爱心效果

embedded/2025/1/23 6:46:36/

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

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.ppmy.cn/embedded/156248.html

相关文章

springboot使用Redis发布订阅(Pub/Sub)实战

一、基本介绍 Redis 发布/订阅是一种消息传模式&#xff0c;其中发送者发送消息&#xff0c;而接收者&#xff08;订阅者&#xff09;接收消息。传递消息的通道称为channel。 例如下图的工流程&#xff0c;当有新消息通过 PUBLISH 命令发送给频道 channel1 时&#xff0c; 这…

博客之星2024年度总评选—我的技术总结之旅

在踏入2024年的尾声之际&#xff0c;回望过去一年的技术探索与实践&#xff0c;心中充满了感慨与收获。作为一名技术博主&#xff0c;我深知持续学习与分享的重要性&#xff0c;因此&#xff0c;本次我选择以“技术总结类”为主题&#xff0c;来盘点我在特定技术领域——人工智…

顺序表和链表(详解)

线性表 线性表&#xff08; linear list&#xff09;是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构&#xff0c;常见的线性表&#xff1a;顺序表、链表、栈、队列、字符串... 线性表在逻辑上是线性结构&#xff0c;也就说是连续的一条直线。…

c++面试题,请使用STL的std::remove_if算法删除std::vector<int>容器中大于5的数字

请使用STL的std::remove_if算法删除std::vector容器中大于5的数字 在C 中&#xff0c; std::remove_if 算法并不会真正从容器中删除元素&#xff0c; 而是将满足条件的元素移动到容器末尾&#xff0c;并返回一个指向新的逻辑结束位置的迭代器。 你需要使用容器的 erase 成员函…

激光雷达和相机早期融合

通过外参和内参的标定将激光雷达的点云投影到图像上。 • 传感器标定 首先需要对激光雷达和相机&#xff08;用于获取 2D 图像&#xff09;进行外参和内参标定。这是为了确定激光雷达坐标系和相机坐标系之间的转换关系&#xff0c;包括旋转和平移。通常采用棋盘格等标定工具&…

[CTF/网络安全] 攻防世界 Web_php_unserialize 解题详析

代码审计 这段代码首先定义了一个名为 Demo 的类&#xff0c;包含了一个私有变量 $file 和三个魔术方法 __construct()、__destruct() 和 __wakeup()。其中&#xff1a; __construce()方法用于初始化 $file 变量__destruce方法用于输出文件内容__wakeup() 方法检查当前对象的…

SQLmap 注入 -04-cookies

1: firefox 先下载cookies 插件: 点击" 附加组件管理器", 然后进去输入cookies, 搜索&#xff0c; 下面这个安装的是 cookie Quick manager 下面看一下&#xff1a; 2下面进行测试: 注意&#xff1a; PHPSESSID 后面是 下面是例子: 上面运行的结果: 好&#xff…

【HF设计模式】06-命令模式

声明&#xff1a;仅为个人学习总结&#xff0c;还请批判性查看&#xff0c;如有不同观点&#xff0c;欢迎交流。 摘要 《Head First设计模式》第6章笔记&#xff1a;结合示例应用和代码&#xff0c;介绍命令模式&#xff0c;包括遇到的问题、采用的解决方案、遵循的 OO 原则、…