前端代码分享--爱心

给对象写的,顺便源码给大家分享一下

就是简单的html+css+js,不复杂

xin1.html

<!DOCTYPE html>  
<html lang="zh-CN">  
<head>  <meta charset="UTF-8">  <title>写你自己的</title>  <link rel="stylesheet" href="petal.css"><style>  body {  margin: 0;  overflow: hidden;  background: radial-gradient(circle at bottom, #ff89b5, #ffe0e5);  display: flex;  justify-content: center;  align-items: center;  position: relative;  height: 100vh;  }  /* 心形动画 */  .heart {  position: absolute;  z-index: 10; /* 确保爱心在最上层 */  width: 150px;  height: 135px;  background: pink;  transform: rotate(45deg);  animation: heartbeat 1s infinite;  }  .heart::before,  .heart::after {  content: "";  position: absolute;  width: 150px;  height: 135px;  background: pink;  border-radius: 50%;  }  .heart::before {  left: -75px;  border-radius: 50% 0 0 50%;  }  .heart::after {  top: -75px;  border-radius: 50% 50% 0 0;  }  @keyframes heartbeat {  0%, 100% {  transform: rotate(45deg) scale(1);  }  50% {  transform: rotate(45deg) scale(1.1);  }  }  /* 文字动画 */  .text {  position: absolute;  z-index: 11;  top: 47%;  left: 50%;  transform: translate(-50%, -50%);  color: #fff;  font-family: 'KaiTi', cursive;  font-size: 48px;  font-weight: bold;  opacity: 0;  animation: textFadeIn 4s forwards;  text-shadow: 0 0 10px rgba(255, 255, 255, 0.8);  }  @keyframes textFadeIn {  0% { opacity: 0; transform: translate(-50%, -50%) scale(0.5);}  100% { opacity: 1; transform: translate(-50%, -50%) scale(1);}  }  /* 花瓣样式 */  .photo-display {  position: absolute;  top: 0;  left: 0;  width: 100%;  height: 100%;  display: flex;  z-index: 1;  opacity: 0;  animation: photoFadeIn 2s forwards;  }  .photo-display img {  width: 50%;  height: 100%;  object-fit: cover;  }  @keyframes photoFadeIn {  from { opacity: 0; }  to { opacity: 1; }  }.button {  position: fixed;  bottom: 10px;  left: 10px;  background-color: #FF69B4;  color: white;  border: none;  padding: 10px 20px;  text-align: center;  text-decoration: none;  display: inline-block;  font-size: 16px;  margin: 10px 8px;  cursor: pointer;  border-radius: 12px;  z-index: 15;  opacity: 0.7;  }  .button:hover {  opacity: 1;  background-color: #FF1493;  }  
</style>  
</head>  
<body>  <div class="heart"></div>  <div class="text">随便写</div>  <!--<audio id="bgm" src="简单爱.mp3" loop></audio>  -->  <!--  此处为二张拼接的照片链接 <div class="photo-display">  <img src="photo/1.jpg" alt="欣怡1"> <img src="photo/2.jpg" alt="欣怡2">  </div>  这块的话是主页面的背景,大家看着调整-->  <a href="message.html" class="button">查看留言</a> <script>  // 创建飘落花瓣  const petalCount = 30;  for (let i = 0; i < petalCount; i++) {  createPetal();  }  function createPetal() {  let petal = document.createElement('div');  petal.classList.add('petal');  petal.style.left = Math.random() * 100 + 'vw';  petal.style.animationDuration = 5 + Math.random() * 5 + 's';  petal.style.animationDelay = Math.random() * 5 + 's';  petal.style.transform = 'translateX(0) rotate(' + Math.random() * 360 + 'deg)';  document.body.appendChild(petal);  petal.addEventListener('animationend', () => {  petal.remove();  createPetal();  });  }  // 音乐和图片展示处理   const photoDisplay = document.querySelector('.photo-display');  function playAudioAndShowPhotos() {  photoDisplay.style.opacity = '1'; // 显示图片  document.querySelector('.click-to-play').style.display = 'none';  document.removeEventListener('click', playAudioAndShowPhotos);  }  document.addEventListener('click', playAudioAndShowPhotos);  
</script>  
</body>  
</html>

message.html

<!DOCTYPE html>  
<html lang="zh-CN">  
<head>  <meta charset="UTF-8">  <title>写你的</title>  <link rel="stylesheet" href="petal.css"><style>  body {  display: flex;  justify-content: center;  align-items: center;  height: 100vh;  margin: 0;  background-color: #fff0f5;  font-family: 'KaiTi', cursive;  color: #e75480;  padding: 20px;  box-sizing: border-box;  text-shadow: 1px 1px 2px #ffa6c9;  }  .message-container {  text-align: center;  max-width: 600px;  }  .message-container h1 {  font-size: 36px;  margin-bottom: 20px;  }  .message-container p {  font-size: 18px;  line-height: 1.5;  text-indent: 2em;}  
</style>  
</head>  
<body>  <div class="message-container">  <!--替换为你的内容-->  </div><audio id="bgm" src="简单爱.mp3" loop></audio> <!--替换为你的内容-->  <script>  const petalCount = 30;  for (let i = 0; i < petalCount; i++) {  createPetal();  }  function createPetal() {  let petal = document.createElement('div');  petal.classList.add('petal');  petal.style.left = Math.random() * 100 + 'vw';  petal.style.animationDuration = 5 + Math.random() * 5 + 's';  petal.style.animationDelay = Math.random() * 5 + 's';  petal.style.transform = 'translateX(0) rotate(' + Math.random() * 360 + 'deg)';  document.body.appendChild(petal);  petal.addEventListener('animationend', () => {  petal.remove();  createPetal();  });  }  const audio = document.getElementById('bgm');  const photoDisplay = document.querySelector('.photo-display');  function playAudioAndShowPhotos() {  audio.play();  photoDisplay.style.opacity = '1'; // 显示图片  document.querySelector('.click-to-play').style.display = 'none';  document.removeEventListener('click', playAudioAndShowPhotos);  localStorage.setItem('musicPlaying', 'true'); // 保存音乐状态  }  function startMusic() {  if (localStorage.getItem('musicPlaying') === 'true') {  audio.play();  }  }  document.addEventListener('click', playAudioAndShowPhotos);  
</script>  
</body>  
</html>

petal.css

.petal {  position: fixed;  top: -50px;  background-image: url('photo/hua.png');   background-size: contain;  background-repeat: no-repeat;  width: 50px;  height: 50px;  opacity: 0.8;  pointer-events: none;  animation: fall linear infinite;  z-index: 5;  
}  
@keyframes fall {  0% {  transform: translateX(0) rotate(0deg);  }  100% {  transform: translateX(200px) translateY(100vh) rotate(360deg);  }  
}

飘落花瓣的原图(ai生成的)

在这里插入图片描述

大家把背景图扣一下,还有html里的内容替换一下就行

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/457935.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入解析机器学习算法

深入解析机器学习算法 机器学习已经成为当今技术进步的核心推动力量&#xff0c;推动了众多行业的创新。其背后依赖的是各种各样的算法&#xff0c;帮助计算机通过从数据中学习来完成任务。这篇文章将对常见的几类机器学习算法进行深入探讨&#xff0c;帮助你理解其工作原理、…

攻防世界的新手web题解

攻防世界引导模式 1、disabled_button 好&#xff0c;给了一个按钮&#xff0c;第一道题目就不会做 看的wp<input disabled class"btn btn-default" style"height:50px;width:200px;" type"submit" value"flag" name"auth&q…

qt 滚动条 美化

qt QScrollBar 滚动条分为竖直与水平滚动条&#xff0c;两者设置上类似&#xff0c;但也有一些不同&#xff0c;下面主要讲述美化及注意事项。 一、竖直滚动条 竖直滚动条分为7个部分&#xff1a; sub-line、 up-arrow 、sub-page、 hanle、 add-line、 dow-arrow、 add-pag…

猴子请来的补丁——Python中的Monkey Patching

猴子补丁&#xff08;Monkey Patching&#xff09;在Python中是一种允许在运行时修改对象行为的技术。这种技术可以在不直接修改原始源代码的情况下&#xff0c;动态地改变或扩展程序的行为。 猴子补丁的原理 猴子补丁的核心原理是利用Python的动态特性&#xff0c;即在运行时…

研究生论文学习记录

文献检索 检索论文的网站 知网&#xff1a;找论文&#xff0c;寻找创新点paperswithcode &#xff1a;这个网站可以直接找到源代码 直接再谷歌学术搜索 格式&#xff1a;”期刊名称“ 关键词 在谷歌学术搜索特定期刊的关键词相关论文&#xff0c;可以使用以下几种方法&#…

Java并发学习总结:原子操作类

本文是学习尚硅谷周阳老师《JUC并发编程》的总结&#xff08;文末有链接&#xff09;。 基本类型原子类 AtomicIntegerAtomicLongAtomicBoolean AtomicInteger 的方法 getAndIncrement 和 incrementAndGet 的区别&#xff1a; 两个方法都能实现对当前值加 1 &#xff0c; 但…

web服务实验

http实验 先创建需要访问的web页面文件index.html 编辑vim /etc/nginx/conf.d/testip.conf 测试通过域名访问需要编辑/etc/hosts 如果通过windows的浏览器访问需要编辑下面的文件通过一管理员身份打开的记事本编辑 C:\Windows\System32\drivers\etc下的hosts文件 192.168.1…

软考:GPU算力,AI芯片

算力 FLOPS&#xff08;每秒浮点操作&#xff09; NVIDIA 去年就有超过 1 exa 的新闻&#xff0c;所以这个数值是越大越好。 AI芯片的技术架构类型 GPU&#xff1a;图形处理单元&#xff0c;擅长并行处理&#xff0c;适用于深度学习等AI计算密集型任务。FPGA&#xff1a;现…

OpenStack将运行的系统导出 QCOW2 镜像并导入阿里云

项目背景 OpenStack&#xff0c;作为一个开源的云计算平台&#xff0c;经常被用于构建私有云和公有云服务。然而&#xff0c;随着业务的发展和扩展&#xff0c;企业可能会面临将在OpenStack上运行的虚拟机迁移到其他云服务供应商的需求 需求 因为运营团队在本地机房有一台 O…

Netty-TCP服务端粘包、拆包问题(两种格式)

前言 最近公司搞了个小业务&#xff0c;需要使用TCP协议&#xff0c;我这边负责服务端。客户端是某个设备&#xff0c;客户端传参格式、包头包尾等都是固定的&#xff0c;不可改变&#xff0c;而且还有个蓝牙传感器&#xff0c;透传数据到这个设备&#xff0c;然后通过这个设备…

pandas快速入门

pandas快速入门 1. 创建pandas对象1.1 前言1.2 使用DataFrame类创建pandas对象1.3 对DataFrame对象进行索引1.4 使用Series类创建pandas对象1.5 对DataFrame Series对象使用常见方法 2. pandas读取文件2.1 使用pd.read_*方法读取文件2.2 使用to_*保存数据2.3 使用info()方法查看…

Python 判断键是否存在字典中(新手入门、实战案例)

在早期的Python2版本中&#xff0c;可以使用 dict.has_key()方法来判断一个键是否存在于字典中。 在Python3中&#xff0c;dict.has_key()方法被废弃了&#xff0c;不能再被使用。如果在Python3中尝试使用dict.has_key()方法会导致 AttributeError异常。 那在Python3中要如何判…

Linux:指令再认识

文章目录 前言一、知识点1. Linux下一切皆文件&#xff0c;也就是说显示器也是一种文件2. 指令是什么&#xff1f;3. ll 与 ls -l4. 日志5. 管道6. 时间戳 二、基本指令1. man指令2. cp指令3. mv指令4. 查看文件1&#xff09;cat/tac指令——看小文件2&#xff09;more/less指令…

Qt:QtCreator使用

用一个QtCreator适配所有Qt版本 首先Qt和QtCreator版本并不是通用的&#xff0c;一个电脑中可以安装很多个Qt版本&#xff0c;但只需要安装一个最新版本的QtCreator即可 Qt是一个语言&#xff0c;也可理解为一个SDK库&#xff0c;Qt目前最新版本为6.7 QtCreator是一个集成开发…

嵌入式Linux的AXI平台(platform)驱动教程

本文以JFMQL100的Linux系统的AXI接口的平台驱动为例&#xff0c;介绍嵌入式Linux的平台驱动编写、测试软件编写以及验证方式。本文的方法适用于任意嵌入式芯片Linux的物理地址映射的平台&#xff08;platform&#xff09;驱动的编写、测试与应用。 本文中AXI的开始地址为0x8000…

Python浪漫之画星星

效果图&#xff08;动态的哦&#xff01;&#xff09;&#xff1a; 完整代码&#xff08;上教程&#xff09;&#xff1a; import turtle import random import time # 导入time模块# 创建一个画布 screen turtle.Screen() screen.bgcolor("red")# 创建一个海龟&a…

Coppelia Sim (v-REP)仿真 机器人3D相机手眼标定与实时视觉追踪 (一)

coppelia sim[V-REP]仿真实现 机器人于3D相机手眼标定与实时视觉追踪 一 标定板的制作生成标定的PDF文件PDF转为图像格式图像加载到仿真中 二 仿真场景设置加载机器人加载的控制dummy ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/b48549d355d8441d8dfc20bc7ba7196…

MYSQL作业三

准备工作 查询操作

Linux复习-C++

参考博客&#xff1a; https://blog.csdn.net/qq_45254369/article/details/126023482?ops_request_misc%257B%2522request%255Fid%2522%253A%252277629891-A0F3-4EFC-B1AC-410093596085%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&req…

力扣 167. 两数之和 II - 输入有序数组

目录 一、题目二、思路三、代码 一、题目 二、思路 由于数组是 非递减顺序排列 的&#xff0c;利用该先验知识&#xff0c;可以设置两个指针在数组的起始和末尾&#xff0c;相向前进&#xff0c;与暴力枚举相比可以加快寻找速度。 三、代码 class Solution {public int[] tw…