❤️创意网页:生日快乐!穿越奇妙时光的温暖庆祝(HTML+CSS+JS)简单好用

博主:命运之光 

🌸专栏:Python星辰秘典

🐳专栏:web开发(简单好用又好看)

❤️专栏:Java经典程序设计

☀️博主的其他文章:点击进入博主的主页

前言:欢迎踏入我的Web项目专栏,一段神奇而令人陶醉的数字世界!

🌌在这里,我将带您穿越时空,揭开属于Web的奥秘。通过HTML、CSS和JavaScript的魔力,我创造了一系列令人惊叹的Web项目,它们仿佛是从梦境中涌现而出。

🌌在这个专栏中,您将遇到华丽的界面,如流星划过夜空般迷人;您将感受到动态的交互,如魔法般让您沉浸其中;您将探索响应式设计的玄妙,让您的屏幕变幻出不同的绚丽景象。

🌌无论您是一个探险家还是一位嗜血的代码巫师,这个专栏将成为您的魔法书。我将分享每个项目的秘密,解开编码的谜题,让您也能够拥有制作奇迹的力量。

🌌准备好了吗?拿起您的键盘,跟随我的指引,一起进入这个神秘而充满惊喜的数字王国。在这里,您将找到灵感的源泉,为自己创造出一段奇幻的Web之旅!

目录

简介

视频展示

图片展示(1)

图片展示(2)

图片展示(3)

页面亮点

项目源代码

代码的使用方法(超简单什么都不用下载)

🍓1.打开记事本 

🍓2.将上面的源代码复制粘贴到记事本里面将文件另存为HTML文件点击保存即可

🍓3.打开html文件(大功告成(●'◡'●))

结语


简介

在这个名为《生日快乐:穿越奇妙时光的温暖庆祝》的博客中,我将以独特的创意和令人难忘的效果,为你带来一场难以忘怀的生日庆祝活动。通过令人陶醉的视觉效果、动人的文字和倒计时提醒,希望为你的生日庆祝增添温暖、喜悦和难忘的回忆。

视频展示

生日快乐!

图片展示(1)

图片展示(2)

图片展示(3)


页面亮点

  • 奇妙时光旅程: 通过精心设计的下雪背景效果,我们将带你穿越时光,踏入一个充满奇幻和浪漫的世界。雪花的飘舞和背景的变化将为你的生日庆祝带来特别的氛围。

  • 生日祝福幻灯片秀: 博客中的幻灯片将呈现一系列精选的生日祝福图片,自动切换展示。通过欢快的音乐和温暖的图像,将向你传达最真挚的祝福。

  • 倒计时提醒与特殊时刻: 在页面顶部,一个倒计时器将不断提醒你离特殊时刻的到来还有多长时间。每一秒都是更接近庆祝的机会,让你的生日变得更加期待和特别。

  • 温馨生日祝福语: 页面中心的容器将展示特别准备的生日祝福语。用真挚的文字表达对你生日的祝福,希望你度过一个充满欢笑、幸福和美好回忆的特殊时刻。


项目源代码

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <link href="https://fonts.googleapis.com/css2?family=Your+Chosen+Font&display=swap" rel="stylesheet">
    <title>下雪背景效果和生日祝福</title>
    <style>
        body {
            overflow: hidden;
            margin: 0;
            padding: 0;
            text-align: center;
            background-color: #f2f2f2;
            font-family: 'Your Chosen Font', cursive;
            animation: backgroundAnimation 5s infinite;
        }

        #snow-container {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            pointer-events: none;
            z-index: -1;
        }

        .snowflake {
            position: absolute;
            width: 10px;
            height: 10px;
            background-color: #fff;
            border-radius: 50%;
            opacity: 0.8;
            pointer-events: none;
            animation: snowfall linear infinite;
        }

        @keyframes snowfall {
            0% {
                transform: translateY(-100%);
            }
            100% {
                transform: translateY(100vh);
            }
        }

        #slideshow {
            width: 500px;
            height: 300px;
            position: relative;
            overflow: hidden;
            margin: 0 auto; /* 添加这行代码使其居中 */
        }

        #slideshow img {
            max-width: 100%;
            max-height: 100%;
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%); /* 居中对齐 */
            opacity: 0;
            transition: opacity 1s ease-in-out;
        }

        #slideshow img.active {
            opacity: 1;
        }

        @keyframes backgroundAnimation {
            0% {
                background-color: #ffafbd;
            }
            50% {
                background-color: #ffc3a0;
            }
            100% {
                background-color: #ffa0bd;
            }
        }

        .container {
            max-width: 600px;
            margin: 0 auto;
            text-align: center;
            padding: 40px;
            background-color: #fff;
            border-radius: 5px;
            box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
            margin-bottom: 20px; /* 调整生日快乐标题和下面文字的间距 */
        }

        h1 {
            color: #ff69b4;
            font-size: 28px;
            margin-bottom: 10px; /* 调整标题和图片之间的间距 */
        }

        img {
            width: 200px;
            border-radius: 50%;
            margin: 1px 0px; /* 调整图片和下方文字之间的间距 */
        }

        p {
            color: #333;
            line-height: 1.5;
            margin-bottom: 20px;
        }

        .fade-in {
            opacity: 0;
            animation: fadeInAnimation 2s forwards;
        }

        @keyframes fadeInAnimation {
            0% {
                opacity: 0;
            }
            100% {
                opacity: 1;
            }
        }

        #countdown {
            display: flex;
            justify-content: center;
            margin-top: 20px;
        }

        .time {
            font-size: 36px;
            margin: 0 10px;
            padding: 10px;
            border: 1px solid #ccc;
            border-radius: 5px;
            animation-fill-mode: forwards;
        }

        #days {
            background-color: #f5f5f5;
        }

        #hours {
            background-color: #e0e0e0;
        }

        #minutes {
            background-color: #d5d5d5;
        }

        #seconds {
            background-color: #cccccc;
        }

        .time span {
            display: inline-block;
            font-size: 14px;
            margin-top: 5px;
            color: #333;
        }

        .ribbon {
            position: absolute;
            width: 100%;
            height: 100%;
            pointer-events: none;
            overflow: hidden;
        }

        .ribbon:before,
        .ribbon:after {
            content: "";
            position: absolute;
            display: block;
            width: 200px;
            height: 200px;
            background: linear-gradient(to bottom, #ff69b4, #ffc3a0, #ffafbd);
            border-radius: 50%;
            opacity: 0.6;
            animation: ribbonAnimation 2s infinite;
        }

        .ribbon:before {
            top: -100px;
            left: -50px;
        }

        .ribbon:after {
            top: -100px;
            right: -50px;
        }

        /* 定义彩带动画 */
        @keyframes ribbonAnimation {
            0% {
                transform: translate(0, 0) rotate(0);
            }
            100% {
                transform: translate(-800px, -800px) rotate(360deg);
            }
        }
    </style>
</head>
<body>
<div id="snow-container"></div>

<div class="fade-in">
    <h1>Welcome to the world of Fate's Light</h1>
    <p>After reading, remember to like, collect, and review. Hahaha.</p>
</div>

<div class="container">
    <h1>生日快乐!</h1>
    <div id="slideshow">
        <img src="1.jpg" alt="Image 1" class="active">
        <img src="2.png" alt="Image 2">
        <img src="3.png" alt="Image 3">
    </div>
    <p>亲爱的命运之光,</p>
    <p>祝你生日快乐!愿你的生日充满欢乐、幸福和美好的回忆。</p>
    <p>在这特殊的日子里,我希望你能享受每一刻,并和亲朋好友一起度过一个美好的时光。</p>
    <p>再次祝你生日快乐!</p>
</div>

<div id="countdown">
    <div class="time" id="days"></div>
    <div class="time" id="hours"></div>
    <div class="time" id="minutes"></div>
    <div class="time" id="seconds"></div>
</div>

<script>
    // 设置生日日期(月从0开始计数)
    const birthday = new Date("2023-07-11");

    function updateCountdown() {
        const now = new Date();
        const difference = birthday - now;

        // 计算剩余的天数、小时数、分钟数和秒数
        const days = Math.floor(difference / (1000 * 60 * 60 * 24));
        const hours = Math.floor((difference / (1000 * 60 * 60)) % 24);
        const minutes = Math.floor((difference / 1000 / 60) % 60);
        const seconds = Math.floor((difference / 1000) % 60);

        // 更新倒计时显示
        document.getElementById("days").textContent = days.toString().padStart(2, "0") + "天";
        document.getElementById("hours").textContent = hours.toString().padStart(2, "0") + "小时";
        document.getElementById("minutes").textContent = minutes.toString().padStart(2, "0") + "分钟";
        document.getElementById("seconds").textContent = seconds.toString().padStart(2, "0") + "秒";
    }

    // 每秒更新一次倒计时
    setInterval(updateCountdown, 1000);
</script>

<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
    $(document).ready(function() {
        var currentIndex = 0;
        var slides = $('#slideshow img');
        var slideCount = slides.length;

        function showSlide(index) {
            slides.removeClass('active');
            slides.eq(index).addClass('active');
        }

        function nextSlide() {
            currentIndex = (currentIndex + 1) % slideCount;
            showSlide(currentIndex);
        }

        // 自动播放幻灯片
        setInterval(nextSlide, 3000);

        // 初始化显示第一张幻灯片
        showSlide(currentIndex);
    });
</script>
<script>
    function createSnowflake() {
        const snowflake = document.createElement('div');
        snowflake.classList.add('snowflake');
        snowflake.style.left = Math.random() * window.innerWidth + 'px';
        snowflake.style.animationDuration = Math.random() * 5 + 5 + 's';
        snowflake.style.opacity = Math.random();
        snowflake.style.fontSize = Math.random() * 10 + 10 + 'px';

        const randomColor = getRandomColor();
        snowflake.style.backgroundColor = randomColor;

        snowflake.innerHTML = '生日快乐❤️'; // You can customize the snowflake symbol here

        return snowflake;
    }

    function getRandomColor() {
        const letters = '0123456789ABCDEF';
        let color = '#';
        for (let i = 0; i < 6; i++) {
            color += letters[Math.floor(Math.random() * 16)];
        }
        return color;
    }

    function snowfall() {
        const snowContainer = document.getElementById('snow-container');
        const numSnowflakes = 50; // Adjust the number of snowflakes here

        for (let i = 0; i < numSnowflakes; i++) {
            const snowflake = createSnowflake();
            snowContainer.appendChild(snowflake);
        }
    }

    snowfall();
</script>
</body>
</html>

代码的使用方法(超简单什么都不用下载)

🍓1.打开记事本 

🍓2.将上面的源代码复制粘贴到记事本里面将文件另存为HTML文件点击保存即可

🍓3.打开html文件(大功告成(●'◡'●))


结语

感谢你阅读我的生日庆祝博客。愿你的生日充满欢笑和美好回忆。祝你生日快乐!🎉🎉


本章的内容就到这里了,觉得对你有帮助的话就支持一下博主把~

🌌点击下方个人名片,交流会更方便哦~
↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于STM32设计的简易手机

一、项目介绍 基于STM32设计的简易手机可以作为智能手表的模型进行开发&#xff0c;方便老人和儿童佩戴。项目主要是为了解决老年人或儿童使用智能手表时可能遇到的困难&#xff0c;例如操作困难、功能复杂等问题。 在这个项目中&#xff0c;采用了STM32F103RCT6主控芯片和SI…

【mysql】-【锁】

文章目录 概述MySQL并发事务访问相同记录读-读情况写-写情况读-写或写-读情况并发问题的解决方案 锁的不同角度分类 概述 事务的隔离性由这章讲述的锁来实现。 MySQL并发事务访问相同记录 并发事务访问相同记录的情况大致可以划分为3种: 读-读情况 读-读情况&#xff0c;…

科技力量赋予 SK5 代理 HTTP 代理 IP 网络无限可能

第一部分&#xff1a;智能网络加速技术 智能缓存&#xff1a;SK5 代理 HTTP 代理 IP 利用智能缓存技术&#xff0c;将经常访问的资源缓存在代理服务器中&#xff0c;从而实现更快速的资源加载和页面响应。这种智能化的缓存策略有效减少了对远程服务器的依赖&#xff0c;提升了用…

自建个人音乐播放器Navidrome - 内网穿透实现在外随时访问

文章目录 1. 前言2. Navidrome网站搭建2.1 Navidrome下载和安装2.1.1 安装并添加ffmpeg2.1.2下载并配置Navidrome2.1.3 添加Navidrome到系统服务 2.2. Navidrome网页测试 3. 本地网页发布3.1 cpolar的安装和注册3.2 Cpolar云端设置3.3 Cpolar本地设置 4. 公网访问测试5. 结语 转…

Linux学习之vim在光标所在处写入内容,保存退出

vim insertTest使用vim打开一个叫做insertTest新文件。 输入命令之后&#xff0c;按下Enter&#xff08;回车键&#xff09;&#xff0c;就可以进入下边的操作页面。 按i在当前光标位置处&#xff0c;就可以插入内容了。 接下来写入内容跟记事本里边是差不多的。 按一下…

文心一言 VS 讯飞星火 VS chatgpt (57)-- 算法导论6.4 1题

文心一言 VS 讯飞星火 VS chatgpt &#xff08;57&#xff09;-- 算法导论6.4 1题 一、参照图 6-4 的方法&#xff0c;说明 HEAPSORT 在数组 A(5&#xff0c;13&#xff0c;2&#xff0c;25&#xff0c;7&#xff0c;17&#xff0c;20&#xff0c;8&#xff0c;4)上的操作过程…

ChatGPT显示付费墙内容,OpenAI把联网功能关了

ChatGPT 学会上网不到两个月&#xff0c;OpenAI就不能忍了。 本周二&#xff0c;OpenAI 突然宣布停止 ChatGPT 的网络浏览功能「使用 Bing 浏览」。 果不其然&#xff0c;关闭的原因是这项功能遭到了滥用。在周一发布的一篇文章中&#xff0c;OpenAI 支持团队人员表示&#xf…

微调预训练的 NLP 模型

动动发财的小手&#xff0c;点个赞吧&#xff01; 针对任何领域微调预训练 NLP 模型的分步指南 简介 在当今世界&#xff0c;预训练 NLP 模型的可用性极大地简化了使用深度学习技术对文本数据的解释。然而&#xff0c;虽然这些模型在一般任务中表现出色&#xff0c;但它们往往缺…

mac intellij idea配置settings.xml报错解决

今天在配置环境的时候&#xff0c;发现在运行代码的时候不断报错提示maven没有能够成功地被sync&#xff0c;解决方法将以下三点解决了之后&#xff0c;程序最终跑起来了。 1.将maven的版本配置对&#xff0c;之前项目都用的maven-3.8.5这个版本&#xff0c;而我原先用的是mave…

大一下暑期计划 + 2023字节青训营预告直播

目录 &#x1f33c;前言 &#x1f339;后端学习方法 &#x1f333;1&#xff0c;层次 &#x1f333;2&#xff0c;体系 &#x1f333;3&#xff0c;算法和数据结构 &#x1f333;4&#xff0c;总结 &#x1f339;前端学习方法 &#x1f333;基础 &#x1f339;求职中如…

如何在Windows 10中创建引导到UEFI固件设置的快捷方式

大多数计算机都有一个特定的键,当计算机启动时按下该键,用户可以访问UEFI(固件)设置。然而,我们经常在错过给定的时间段时按键太晚,因为笔记本电脑默认情况下只需等待几秒钟就可以启动到 Windows。 另一个引导到 UEFI 设置的选项是重新启动到高级启动选项,然后从那里开…

在linux中安装HAProxy

使用xfrp将压缩包上传到linux的opt目录下 1.解压HAProxy安装包 tar -zxvf haproxy-1.8.12.tar.gz 2. 查看点钱的内核及版本: uname -r 3. 根据内核版本选择编译参数 cd haproxy-1.8.12 cat README 4. 编译安装HAProxy make TARGETlinux2628 ARCHx86_64 PREFIX/usr/local…

Stable Diffusion - 超分辨率插件 StableSR v2 (768x768) 配置与使用

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/131582734 论文&#xff1a;Exploiting Diffusion Prior for Real-World Image Super-Resolution StableSR 算法提出了一种新颖的方法&#xff0…

5、加载3dtileset模型并定位到模型

这一节使用CCesium加载3dtiles模型&#xff0c;3dtiles模型使用ceisum官网示例中的模型&#xff0c;加载3dtiles功能目前只能添加没有压缩的模型&#xff0c;draco或其他解压缩功能没有写。 1、在上一个例子的基础上&#xff0c;将鼠标事件改成右键的鼠标事件Cesium::ScreenSp…

【Web3】认识Web3

Web3是一种用于描述下一代互联网的概念 它指在构建一个去中心化 用户控制和加密安全的网络环境。 Web3的目标是将权利和数据掌握回归到用户手中 通过采用分布式技术和加密货币的支持 实现更加开放 公开和透明的互联网 Web的主要特点 去中化&#xff1a;Web3的核销理念是去中心…

【MySQL数据库】MMM高可用架构

目录 一 、MMM简介1.1MMM&#xff08;Master-Master replication manager for MvSQL&#xff0c;MySQL主主复制管理器&#xff09;1.2关于 MMM 高可用架构的说明如下 二、搭建mysql MMM架构2.1实验环境2.2搭建多主多从2.3安装配置 MySQL-MMM 一 、MMM简介 1.1MMM&#xff08;M…

安装Node.js和创建Vue-cli工程

NodeJs中文网&#xff1a;下载 | Node.js (nodejs.org) 注意事项&#xff1a; 最好下载Node16版本&#xff0c;除非你后续使用的Vue-cli版本比较高&#xff0c;像我使用的Vue-cli3和4.1.1版本去创建工程&#xff0c;然后run运行会报错Error: error:0308010C:digital envelope …

CClink IE转Modbus TCP网关连接三菱FX5U PLC

远创智控YC-CCLKIE-TCP 是自主研发的一款 CCLINK IE FIELD BASIC 从站功能的通讯网关。该产品主要功能是将各种 MODBUS-TCP 设备接入到 CCLINK IE FIELD BASIC 网络中。 远创智控YC-CCLKIE-TCP网关连接到 CCLINK IE FIELD BASIC 总线中做为从站使用&#xff0c;连接到 MODBUS-T…

uni-app 从零开始第二章:hello world

一、新建项目 选择 默认模板&#xff0c;填写项目名&#xff0c;然后点击创建&#xff0c;我这里选择的是 vue3&#xff0c;大家自行选择&#xff0c;默认是2 二、 运行项目到各个平台 注意&#xff0c;这里需要提前开启 微信开发者工具的端口 同样的&#xff0c;需要将mumu模…

将迷你世界的蓝图导出成表格

将迷你世界的蓝图导出成表格 使用方法为编译此代码&#xff0c;然后将游戏存档的vbp文件拖入编译出的exe上即可导出csv文件 #include<iostream> #include<Windows.h> #include<direct.h> #include<io.h> using namespace std; #define N_L 4 //这个改…