Merry Christmas HTML

   简单分享 Merry Christmas HTML 设计的核心代码


   HTML:


<body class="card">
<div class="dialog"><div class="dialog-in"><div class="dialog-msg"><div class="heading">You've got a post card!</div><a class="play" onclick="openCard()">View</a></div></div></div><div class="header"><div class="heading">Merry Christmas!</div></div><div class="deer"><img class="deer-body" src="img/deer-body.png" alt=""><img class="deer-left-hand" src="img/deer-left-hand.png" alt=""><img class="deer-gift3" src="img/deer-gift3.png" alt=""><img class="deer-gift2" src="img/deer-gift2.png" alt=""><img class="deer-gift1" src="img/deer-gift1.png" alt=""><img class="deer-scarf" src="img/deer-scarf.png" alt=""><img class="deer-right-hand" src="img/deer-right-hand.png" alt="" ><img class="deer-left-leg" src="img/deer-left-leg.png" alt=""><img class="deer-right-leg" src="img/deer-right-leg.png" alt=""></div><div class="penguin"><div class="peng-left-hand">     <img class="peng-letter" src="img/peng-letter.png" alt=""><img class="peng-left-hand-pic" src="img/peng-left-hand.png" alt=""></div><img class="peng-right-hand" src="img/peng-right-hand.png" alt=""><img class="peng-body" src="img/peng-body.png" alt=""></div><div class="santa"><img class="santa-body" src="img/santa-body.png" alt=""><img class="santa-left-hand" src="img/santa-left-hand.png" alt=""><img class="santa-right-hand" src="img/santa-right-hand.png" alt=""><div class="santa-baloon"><img class="baloon" src="img/santa-baloon.png" alt=""><div class="santa-text"></div></div> <img class="santa-left-leg" src="img/santa-left-leg.png" alt=""><img class="santa-right-leg" src="img/santa-right-leg.png" alt=""></div><div class="dwarf"><img class="dwarf-body" src="img/dwarf-body.png" alt=""><img class="dwarf-left-leg" src="img/dwarf-left-leg.png" alt=""><img class="dwarf-right-leg" src="img/dwarf-right-leg.png" alt=""><img class="dwarf-box" src="img/dwarf-box.png" alt=""></div><audio src="mp3/music.mp3" class="music" autoplay loop></audio><canvas id="canvas"></canvas><script src="js/fireworks.js"></script><script>
function openCard(){document.querySelector('.dialog').style.display = 'none';document.querySelector('.music').play();fireworks();document.querySelector('body').classList.add('active');}
</script></body>


   CSS:


:root {--size: 200px;--size-md: 150px;--size-sm: 120px;}*{box-sizing: border-box;
}img{max-width: 100%;
}body,html{height: 100%;overflow: hidden;
}
body{background-image: url('../img/bg.jpg');background-position: center center;background-size: cover;background-color: rgb(167, 232, 243);margin: 0;text-align: center;font-family: 'Playfair Display SC', serif;
}.dialog{display: table;
position: absolute;
background-color: rgba(0,0,0,0.9);
left: 0;
top: 0;
width: 100%;
height: 100%;
z-index: 100;
}.dialog-in{
display: table-cell;
vertical-align: middle;
}.heading{
color:  rgb(245, 32, 103);
font-size: 50px;
margin: 50px 0;
}.play{display: inline-block;text-decoration: none;padding: 10px 20px;background-color: rgb(245, 32, 103);border-radius: 30px;color: #fff;cursor: pointer;
}.deer{position: absolute;width: var(--size);bottom: 30%;left: 50%;margin-left: 5%;
}
.active .deer{animation: deer-body 4s ease-in-out infinite;}@keyframes deer-body{0%{bottom: -40%;}50%{bottom: 40%;transform: rotate(-20deg);}100%{bottom: -40%;}
}.deer-body{position: relative;z-index: 1;
}.deer-left-hand{position: absolute;width: 30%;top: 59%;left: -15%;transform-origin: 100% 80%;
}
@keyframes deer-lh{0%{transform: rotate(-20deg);}30%{transform: rotate(-20deg);}50%{transform: rotate(10deg);}100%{transform: rotate(10deg);}
}.active .deer-left-hand{animation: deer-lh 4s ease-in-out infinite; 
}.deer-gift3{position: absolute;width: 50%;top: 25%;left: -31%;
}.active .deer-gift3{animation: deer-gift3 4s ease-in-out infinite; 
}@keyframes deer-gift3{0%{top: 35%;}30%{top: 35%;}50%{top: 15%;}60%{top: 20%;}100%{top: 20%;}
}.peng-left-hand-pic{position: relative;
}
.peng-left-hand{position: absolute;width: 30%;top: 12%;left: 0;transform-origin: 100% 100%;
}.active .peng-left-hand{animation: peng-lh 4s ease-in-out infinite;
}@keyframes peng-lh{30%{transform: rotate(30deg);}35%{transform: rotate(-30deg);}40%{transform: rotate(30deg);}45%{transform: rotate(-30deg);}50%{transform: rotate(30deg);}55%{transform: rotate(-30deg);}60%{transform: rotate(30deg);}
}.peng-letter{position: absolute;width: 100%;bottom: 70%;right: 10%;
}.peng-right-hand{position: absolute;width: 30%;top: 62%;left: 82%;
}.santa{position: absolute;width: var(--size);bottom: 30%;right: 50%;margin-right: 5%;transform-origin: 120% 0;transform: rotate(-10deg);
}.active .santa{animation: santa-body 4s linear infinite, santa-body-swing 2s linear infinite;
}@keyframes santa-body-swing{50%{transform: rotate(-30deg);}
}
@keyframes santa-body{25%{bottom: 20%;}50%{right: 60%;bottom: 25%;}75%{bottom: 30%;right: 55%;}
}


   JS:


function fireworks() {var canvas = document.querySelector('#canvas');canvas.width = window.innerWidth;canvas.height = window.innerHeight;var ctx = canvas.getContext('2d');// initctx.fillStyle = 'transparent';// ctx.fillRect(0, 0, canvas.width, canvas.height);ctx.clearRect(0, 0, canvas.width, canvas.height);// objectsvar listFire = [];var listFirework = [];var fireNumber = 10;var center = {x: canvas.width / 2,y: canvas.height / 2};var range = window.innerWidth / 3;for (var i = 0; i < fireNumber; i++) {var fire = {x: Math.random() * range / 2 - range / 4 + center.x,y: Math.random() * range * 2 + canvas.height,size: Math.random() + 0.5,fill: '#fd1',vx: Math.random() - 0.5,vy: -(Math.random() + 4),ax: Math.random() * 0.02 - 0.01,far: Math.random() * range + (center.y - range)};fire.base = {x: fire.x,y: fire.y,vx: fire.vx};//listFire.push(fire);}function randColor() {var r = Math.floor(Math.random() * 256);var g = Math.floor(Math.random() * 256);var b = Math.floor(Math.random() * 256);var color = 'rgb($r, $g, $b)';color = color.replace('$r', r);color = color.replace('$g', g);color = color.replace('$b', b);return color;}(function loop() {requestAnimationFrame(loop);update();draw();})();function update() {for (var i = 0; i < listFire.length; i++) {var fire = listFire[i];//if (fire.y <= fire.far) {// case add fireworkvar color = randColor();for (var i = 0; i < fireNumber * 5; i++) {var firework = {x: fire.x,y: fire.y,size: Math.random() + 1.5,fill: color,vx: Math.random() * 5 - 2.5,vy: Math.random() * -5 + 1.5,ay: 0.05,alpha: 1,life: Math.round(Math.random() * range / 2) + range / 2};firework.base = {life: firework.life,size: firework.size};listFirework.push(firework);}// resetfire.y = fire.base.y;fire.x = fire.base.x;fire.vx = fire.base.vx;fire.ax = Math.random() * 0.02 - 0.01;}//fire.x += fire.vx;fire.y += fire.vy;fire.vx += fire.ax;}for (var i = listFirework.length - 1; i >= 0; i--) {var firework = listFirework[i];if (firework) {firework.x += firework.vx;firework.y += firework.vy;firework.vy += firework.ay;firework.alpha = firework.life / firework.base.life;firework.size = firework.alpha * firework.base.size;firework.alpha = firework.alpha > 0.6 ? 1 : firework.alpha;//firework.life--;if (firework.life <= 0) {listFirework.splice(i, 1);}}}}function draw() {// clearctx.globalCompositeOperation = 'source-over';ctx.globalAlpha = 0.18;ctx.fillStyle = 'transparent';// ctx.fillRect(0, 0, canvas.width, canvas.height);ctx.clearRect(0, 0, canvas.width, canvas.height);// re-drawctx.globalCompositeOperation = 'screen';ctx.globalAlpha = 1;for (var i = 0; i < listFire.length; i++) {var fire = listFire[i];ctx.beginPath();ctx.arc(fire.x, fire.y, fire.size, 0, Math.PI * 2);ctx.closePath();ctx.fillStyle = fire.fill;ctx.fill();}for (var i = 0; i < listFirework.length; i++) {var firework = listFirework[i];ctx.globalAlpha = firework.alpha;ctx.beginPath();ctx.arc(firework.x, firework.y, firework.size, 0, Math.PI * 2);ctx.closePath();ctx.fillStyle = firework.fill;ctx.fill();}}}


   效果如下:


Merry Christmas 2024

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

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

相关文章

【C语言程序设计——选择结构程序设计】预测你的身高(头歌实践教学平台习题)【合集】

目录&#x1f60b; 任务描述 相关知识 1、输入数值 2、选择结构语句 3、计算结果并输出 编程要求 测试说明 通关代码 测试结果 任务描述 本关任务&#xff1a;编写一个程序&#xff0c;该程序需输入个人数据&#xff0c;进而预测其成年后的身高。 相关知识 为了完成本…

【自动化测试】windows下安装Selenium浏览器界面测试工具

Date: 2024.12.23 10:15:53 author: lijianzhan 简述&#xff1a;这篇教程详细介绍了如何在Windows环境下安装selenium&#xff0c;并设置Chrome浏览器驱动。什么是Selenium&#xff1f;Selenium是一个基于浏览器的自动化测试工具&#xff0c;它提供了一种跨平台、跨浏览器的端…

前端网络之【浏览器跨域问题分析与解决方案】

文章目录 同源策略同源与异源跨域的限制场景解决方案 CORS 请求分类 简单请求预检请求 注意点一 【关于Cookie】注意点二 【关于跨域获取响应头】 JSONP 基本流程 代理服务器 如何选择对应方案 同源策略 **同源策略是一套浏览器的安全策略机制&#xff0c;当一个源的文档和脚…

SSE 流式场景应用 及 方案总结

文章目录 SSE 流式场景前端流式解码应用JavaScript中的EventSource APISSE 与 Axios应用SSE 与 fetch 应用fetch 自己的流式响应代码解释 SSE 流式场景 股票行情实时推送 背景&#xff1a;在金融领域&#xff0c;股票价格是实时变化的。投资者和交易员需要及时获取最新的股票行…

老旧小区用电安全保护装置#限流式防火保护器参数介绍#

摘要 随着居民住宅区用电负荷的增加&#xff0c;用电安全问题日益突出&#xff0c;火灾隐患频繁发生。防火限流式保护器作为一种新型电气安全设备&#xff0c;能够有效预防因电气故障引发的火灾事故。本文介绍了防火限流式保护器的工作原理、技术特点及其在居民住宅区用电系统…

【ES6复习笔记】集合Set(13)

ES6 提供了新的数据结构 Set&#xff08;集合&#xff09;。它类似于数组&#xff0c;但成员的值都是唯一的&#xff0c;集合实现了iterator接口&#xff0c;所以可以使用『扩展运算符』和『for…of…』进行遍历。 集合的属性和方法 size&#xff1a;返回集合的元素个数。add…

whisper.cpp: PC端测试 -- 电脑端部署音频大模型

whisper.cpp: PC端测试 1.环境需要2.构建项目3.PC测试 1.环境需要 以下是经实验验证可行的环境参考&#xff0c;也可尝试其他版本。 &#xff08;1&#xff09;PC&#xff1a;Ubuntu 22.04.4 &#xff08;2&#xff09;软件环境&#xff1a;如下表所示 工具版本安装Anacond…

NAT的工作原理

NAT&#xff08;Network Address Translation&#xff0c;网络地址转换&#xff09;的工作原理主要是通过修改网络数据包中的IP地址信息来实现的。它允许内部网络使用私有IP地址&#xff0c;同时通过一个或少数几个公共IP地址来接入外部网络&#xff08;通常是Internet&#xf…

安全筑堤,效率破浪 | 统一运维管理平台下的免密登录应用解析

在信息技术迅猛发展的今天&#xff0c;企业运维管理领域正面临着前所未有的复杂挑战。统一运维管理平台作为集中管理和监控IT基础设施的核心工具&#xff0c;其安全性和效率至关重要。免密登录作为一种新兴的身份验证技术&#xff0c;正逐渐成为提升运维管理效率和安全性的重要…

论文复刻:ESG表现对企业价值的影响机制研究——A股上市公司证据(2009-2023年)

参照王波&#xff08;2022&#xff09;的做法&#xff0c;对来自软科学《ESG表现对企业价值的影响机制研究——来自我国A股上市公司的经验证据》一文中的基准回归部分进行复刻 以中国2009-2023年A股上市公司为研究样本考察企业的环境、社会和治理&#xff08;ESG&#xff09;表…

小程序租赁系统开发指南与实现策略

内容概要 在如今这个快节奏的时代&#xff0c;小程序租赁系统的开发正逐渐成为许多商家提升服务质量与效率的重要选择。在设计这样一个系统时&#xff0c;首先要明白它的核心目标&#xff1a;便捷、安全。用户希望在最短的时间内找到需要的物品&#xff0c;而商家则希望通过这…

[2003].第2-01节:关系型数据库表及SQL简介

所有博客大纲 后端学习大纲 MySQL学习大纲 1.数据库表介绍&#xff1a; 1.1.表、记录、字段 1.E-R&#xff08;entity-relationship&#xff0c;实体-联系&#xff09;模型中有三个主要概念是&#xff1a; 实体集 、 属性 、 联系集2.一个实体集&#xff08;class&#xff09…

微调大模型时,如何进行数据预处理? 将<input, output>转换为模型所需的<input_ids, labels, attention_mask>

原始训练数据集格式如下&#xff1a; <input, output> 形式&#xff1a;字符 模型训练所需数据格式如下&#xff1a; # tokenizer处理后 return {"input_ids": example,"labels": labels,"attention_mask": example_mask, } 将字符转…

基于websocket实现本地web语音聊天

基于libwebsockets库实现语音聊天 1、关于libwebsocket库自行编译2、client使用htmljs 代码3、服务端代码 1、关于libwebsocket库自行编译 2、client使用htmljs 代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"…

git推送本地仓库到远程(Gitee)

目录 一、注册创建库 二、创建仓库 三、推送本地仓库到远程 1.修改本地仓库用户名和邮箱 2.本地库关联远程仓库 3.拉取远程仓库的文件 4.推送本地库的文件 5.查看远程仓库 四、远程分支查看 1.查看远程分支 2.修改test.txt文件 一、注册创建库 Gitee官网&#xff1…

GoZero框架接入数据库引擎Gorm 并实战:构建简单的 CRUD 业务API

GoZero 是一个高性能的微服务框架&#xff0c;它基于 Go 语言开发&#xff0c;提供了丰富的工具支持&#xff0c;能够帮助开发者快速构建可扩展、易维护的应用。Gorm 是 Go 语言中常用的 ORM 库&#xff0c;它帮助我们简化数据库操作&#xff0c;使用面向对象的方式进行增删改查…

KNN分类算法 HNUST【数据分析技术】(2025)

1.理论知识 KNN&#xff08;K-Nearest Neighbor&#xff09;算法是机器学习算法中最基础、最简单的算法之一。它既能用于分类&#xff0c;也能用于回归。KNN通过测量不同特征值之间的距离来进行分类。 KNN算法的思想&#xff1a; 对于任意n维输入向量&#xff0c;分别对应于特征…

达梦数据守护搭建

主备库初始化 ./dminit path/dmdata/data db_nameDM01 instance_nameDMSVR01 port_num5236 page_size16 extent_size32 log_size500 case_sensitive1 SYSDBA_PWDDM01SYSDBA ./dminit path/dmdata/data db_nameDM02 instance_nameDMSVR02 port_num5236 page_size16 extent_size3…

探索Flink动态CEP:杭州银行的实战案例

摘要&#xff1a;本文撰写自杭州银行大数据工程师唐占峰、欧阳武林老师。将介绍 Flink 动态 CEP的定义与核心概念、应用场景、并深入探讨其技术实现并介绍使用方式。主要分为以下几个内容&#xff1a; Flink动态CEP简介 Flink动态CEP的应用场景 Flink动态CEP的技术实现 Flin…

谷歌集群数据集:负载均衡云服务测试数据

谷歌集群数据集 以下为你举例说明各文件中一条数据的具体含义,方便你更好地理解这个数据集: 1. machine_events 文件示例 假设其中有这样一条数据:123456789, 101, 0, "platform_abc", 4, 8 含义:表示在时间戳为123456789微秒时,机器ID为101的这台机器发生了…