【圣诞树代码】送她六棵圣诞树,祝她圣诞快乐~(送女朋友必备!)

news2025/2/2 22:41:15

“ 六棵圣诞树,满足她圣诞愿望 ”

距离25号圣诞节只有几天了,程序员有属于程序员的浪漫,这不来了~

如果一颗圣诞树不够,那就送她六棵,祝她圣诞快乐~

直接上效果图——

01在这里插入图片描述

02

在这里插入图片描述

03

在这里插入图片描述

04

在这里插入图片描述

05

在这里插入图片描述

06

在这里插入图片描述

代码如下:

第1~4圣诞树,公众号「先取个名字吧」回复圣诞树,即可获取代码

六棵圣诞树都是完美适配手机,手机上即可打开。

第五棵圣诞树如下:

<!DOCTYPE html>
<html>

<head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no">

    <title>小颖宝第五颗木马诞树</title>
    <link rel="stylesheet" href="../css/76.css">
    <style>
        /* 引用网络字体(Kanit) */
        @import url("http://fonts.googleapis.com/css?family=Kanit");

        * {
            /* 初始化 */
            margin: 0;
            padding: 0;
        }

        body {
            background-color: #333;
        }

        /* 顶部星星 */
        .star {
            width: 36px;
            height: 36px;
            /* 绝对定位 计算位置 */
            position: absolute;
            left: calc(50% - 18px);
            top: calc(20vh - 22px);
            z-index: 2;
            background: #ffce54;
            /* 裁切成五角星 */
            clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%);
            /* 动画过渡 */
            transition: 0.3s;
        }

        /* Merry Christmas文字 */
        .star::before {
            /* 默认没文字 */
            content: "";
            /* 绝对定位 */
            position: absolute;
            top: 55vh;
            width: 100%;
            text-align: center;
            color: #555;
            font-size: 6vw;
            font-family: "Kanit";
            font-weight: 900;
            /* 不让文字换行 */
            white-space: nowrap;
            /* 字体发光效果 */
            text-shadow: 0 0 10px #fff,
            0 0 20px #fff,
            0 0 40px #fff,
            0 0 80px #fff,
            0 0 120px #fff,
            0 0 160px #fff;
        }

        /* 鼠标移入星星,星星变成图片 */
        .star:hover {
            background: url("../images/op1/1.jpg") no-repeat;
            /* 保持原有尺寸比例,裁切长边 */
            background-size: cover;
            background-position: center;
            width: 50vw;
            height: 50vh;
            border-radius: 20px;
            /* 取消裁切五角星 */
            clip-path: none;
            /* 计算left,让其居中 */
            left: calc(50% - 25vw);
        }

        /* 鼠标移入,设置文本 */
        .star:hover::before {
            content: "Merry Christmas";
        }

        ul {
            padding: 0;
        }

        ul li {
            list-style: none;
        }

        .tree li {
            position: absolute;
            top: 20vh;
            right: 50%;
            width: 1px;
            /* 通过var函数调用自定义属性--h,设置每一条线的高度 */
            height: var(--h);
            /* 线条背景颜色,透明往浅绿色渐变 */
            background: linear-gradient(transparent, rgba(46, 204, 113, 0.35));
            /* 设置旋转元素的基点位置 */
            transform-origin: 50% 0;
            /* 执行动画:动画名 时长 加速后减速 无限次播放 */
            animation: swing 4s ease-in-out infinite;
            /* 通过var函数调用自定义属性--d,设置每一条线的动画延迟时间 */
            animation-delay: var(--d);
        }

        /* 彩色小圆点 */
        .tree li::before {
            content: "";
            position: absolute;
            left: -1px;
            bottom: 1px;
            width: 4px;
            height: 4px;
            border-radius: 50%;
        }

        /* 下标是4的倍数的所有小圆点 */
        .tree li:nth-child(4n)::before {
            background-color: #D8334A;
        }

        /* 下标是4的倍数加1的所有小圆点 */
        .tree li:nth-child(4n+1)::before {
            background-color: #FFCE54;
        }

        /* 下标是4的倍数加2的所有小圆点 */
        .tree li:nth-child(4n+2)::before {
            background-color: #2ECC71;
        }

        /* 下标是4的倍数加3的所有小圆点 */
        .tree li:nth-child(4n+3)::before {
            background-color: #5D9CEC;
        }

        /* 定义动画 */
        @keyframes swing {
            0%, 100% {
                transform: rotateZ(-30deg);
            }
            5%, 45% {
                opacity: 0.25;
            }
            50%, 100%, 0% {
                opacity: 1;
            }
            50% {
                transform: rotateZ(30deg);
            }
        }

        .project-title {
            position: absolute;
            left: 25px;
            bottom: 20px;

            font-size: 16px;
            color: #fff;
        }
</style>
</head>

<body>

<audio autoplay="autopaly" loop="loop" id="audios">
    <source src="music/2.mp3" type="audio/mp3"/>
</audio>


<script>
    // 这里使用了微信自带的WeixinJSBridgeReady事件
    document.addEventListener('WeixinJSBridgeReady', function () {
        document.getElementById('audios').play()
    })

    // 将以下代码添加到js入口函数内即可
    document.addEventListener('touchstart', function () {
        document.getElementById('audios').play()
    })

    // 将以下代码添加到js入口函数内即可
    document.addEventListener('click', function () {
        document.getElementById('audios').play()
    })
</script>

<div class="star"></div>
<ul class="tree" id="tree"></ul>
<script>
    function createTree() {
        for (let i = 0; i < 128; i++) {
            let li = document.createElement('li');
            li.style.cssText = '--h:calc(60vh / 128 * ' + i + ');--d:calc(-28s / 128 * ' + i + ');';
            document.getElementById('tree').appendChild(li);
        }
    }

    window.addEventListener('load', () => {
        createTree();
    })
</script>

</body>

</html>

在这里插入图片描述

关注微信公众号「 先取个名字吧
更多惊喜等待你的发掘
​ ​

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

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

相关文章

[1184]FinalShell下载安装

文章目录FinalShell介绍初步使用更换背景图连接记录删除FinalShell介绍 官网&#xff1a;http://www.hostbuf.com/ http://www.hostbuf.com/?install_fs FinalShell 简介&#xff1a; FinalShell 相当于 xshell ftp 的组合&#xff0c;即&#xff1a;FinalShell xshell f…

【计算机考研408】中断处理流程

中断请求 中断源是请求CPU中断的设备或事件&#xff0c;一台计算机允许有多个中断源。每个中断源向CPU发出中断请求的时间是随机的。 中断响应判优 中断响应优先级是指CPU响应中断请求的先后顺序。当多个中断源同时提出请求时&#xff0c;需通过中断判优逻辑来确定响应哪个中…

Python asyncore socket客户端开发基本使用

目录 介绍 1.定义类并且继承 asyncore.dispatcher 2.实现类中的回调代码 调用父类方法 创建 socket 对象 连接服务器 3.创建对象并且执行 asyncore.loop 进入运行循环 服务端示例代码 运行结果 注意&#xff1a; 介绍 asyncore库是python的一个标准库&#xff0c;提…

作为程序员,你离拿offer就差这个免费且好用的简历制作工具

为什么你的简历总是石沉大海&#xff1f;为什么你投递的岗位迟迟得不到回应&#xff1f;除了岗位招满、HR没看到以及竞争太激烈等客观因素外&#xff0c;最重要的是——“简历”出现了问题。 “简历”就像名片一样&#xff0c;在面试和求职的过程中&#xff0c;一份优质的简历…

数字孪生城市项目的关键技术展望

智慧城市是社会空间、物理空间和信息系统三元有机融合的条件下城市智慧化转型的新型态, 运用以数字孪生为代表的新一代信息化技术优化城市系统, 提升城市品质和综合竞争力, 从而实现可持续发展成为智慧城市构建的新趋势。 数字孪生城市项目的关键技术 北京智汇云舟科技有限公司…

chrome的几种存储storage模式

Storage生命周期存放数据大小与服务器通信localStore 除非被清除&#xff0c;否则永远保存 一般5MB 仅在客户端(即浏览器)中SessionStorage仅在当前会话下有效&#xff0c;关闭页面或者浏览器后被清除 一般5MB 保存&#xff0c;不参与和服务器的通信Cookies一般由服务器生成&a…

荣盛生物将再次上会:前三季度收入约2亿元,曾被暂缓审议

近日&#xff0c;上海证券交易所披露的信息显示&#xff0c;上海荣盛生物药业股份有限公司&#xff08;下称“荣盛生物”&#xff09;将于2022年12月26日接受科创板上市委员会的现场审议&#xff08;即“上会”&#xff09;。据贝多财经了解&#xff0c;荣盛生物曾于11月7月7日…

TCP滑动窗口、流量控制、拥塞控制

TCP滑动窗口、流量控制、拥塞控制一、滑动窗口二、流量控制三、拥塞控制一、滑动窗口 上篇博客我们介绍了TCP报文结构、确认应答机制、超时重传机制、连接管理机制。 TCP保证了可靠传输&#xff0c;但是失去了效率。那么怎么样尽可能提高传输效率呢&#xff1f;&#xff1f;&a…

react笔记_07组件实例化对象的三大属性

目录前提状态(state)作用状态使用总结属性(props)展开运算符复习props-作为属性传入数据props-使用展开运算符展开对象props-进行数据类型限制propTypes语法校验规则举例说明defaultProps语法举例说明refs字符串形式的ref语法举例说明注意点回调形式的ref什么叫做回调&#xff…

RT-Thread 简介

1.RT-Thread 概述 RT-Thread&#xff0c;全称是Real Time-Thread&#xff0c;顾名思义&#xff0c;它是一个嵌入式实时多线程操作系统&#xff0c; 基本属性之一是支持多任务&#xff0c;允许多个任务同时运行并不意味着处理器在同一时刻真地执行了多个任务。 事实上&#xff…

Redis实战——签到统计(BitMap的用法)

1. 什么是BitMap 我们针对签到功能完全可以通过mysql来完成&#xff0c;比如说以下这张表 但是&#xff0c;用户一次签到&#xff0c;就是一条记录&#xff0c;假如有1000万用户&#xff0c;平均每人每年签到次数为10次&#xff0c;则这张表一年的数据量为 1亿条。 每签到一次…

js实现图片的放大缩小(鼠标长按拖拽、鼠标滚轮控制放大缩小)

系列文章目录 文章目录系列文章目录背景与效果图1.背景如下&#xff08;功能图&#xff09;&#xff1a;2.效果图如下&#xff1a;拖拽后的效果缩放的效果放大的效果一、功能&#xff1a;支持鼠标长按拖拽1.鼠标事件&#xff1a;2.拖拽功能流程3.拖拽部分代码如下二、功能&…

HTTP报文详解

个人博客地址&#xff1a; http://xiaohe-blog.top/ 文章目录1. 请求1.1 请求行1.2 请求头1.3 空白行1.4 请求体2. 响应2.1 状态行2.2 响应头2.3 空白行2.4 响应体2.5 HTTP报文总结3. HTTP方法4. GET与POST的区别5. 状态码1. 请求 1.1 请求行 请求方式 请求地址 请求协议版本号…

指针进阶1 2

字符指针 int main() {char ch q;char* pa &ch;return 0; }不仅可以这样写还可以指向一个字符串 int main() {/*char ch q;char* pa &ch;*/char* ph "hello world";printf("%c\n", *ph);//打印遇到\0才会结束&#xff0c;没数据会打印随机值…

pybind11学习 | VS2022下安装配置

pybind11是一个只有头文件&#xff08;header-only&#xff09;的轻量级库&#xff0c;其主要目的是建立C的Python代码绑定&#xff0c;实现C和Python无缝连接。我学习这个工具的目的&#xff0c;是为了能够在Python中调用C代码实现一些计算密集型任务&#xff0c;同时培养自己…

Java后端核心技能知识点

今天带来的是2022全新升级的《Java岗面试核心版》&#xff0c;这个版本里面不仅仅包含了面试题&#xff0c;还有更多的技术难点、大厂算法、实战项目、简历模板等等&#xff0c;全册接近1700页&#xff01;相比上一个版本的287页&#xff0c;升级了多少内容你懂的 大概内容&am…

南京邮电大学编译原理实验二(语法分析程序)

文章目录一、文法二、源代码模块&#xff08;一&#xff09;消除文法的左递归&#xff08;二&#xff09;求First集&#xff08;三&#xff09;求Follow集&#xff08;四&#xff09;构建LL(1)分析表&#xff08;五&#xff09;符号串分析&#xff08;六&#xff09;主函数三、…

破解色带现象(下)

编者按&#xff1a;本文是“破解色带现象”文章的第二部分&#xff0c;Fabio Sonnati进一步 分析了色带现象产生的原因&#xff0c;并提供了新的检测办法。本文已获得作者授权转载。翻译&#xff1a;Argus原文链接&#xff1a;https://sonnati.wordpress.com/2022/09/16/defea…

Flink实战案例四部曲

Flink实战案例四部曲 第一部曲:统计5分钟内用户修改创建删除文件的操作日志数量 输入 1001,delete 1002,update 1001,create 1002,delte 输出 1001&#xff0c;2 1002&#xff0c;2代码如下。 import org.apache.flink.streaming.api.environment.StreamExecutionEnvironmen…

Anlios装grouplist 组件之后报错,安装tiger-vncserver

因为之前升级了一个epel-release源&#xff0c;然后containerd也装进去了&#xff0c;但是版本太低 然后以为是runc挡住了&#xff0c;发现没有runc 删完了containerd就可以装了 rpm -ivh http://mirrors.wlnmp.com/centos/wlnmp-release-centos.noarch.rpm dnf install wntp…