动态炫酷的新年烟花网页代码

news2024/11/15 19:45:10

  烟花效果的实现可以采用前端技术,如HTML、CSS和JavaScript。通过结合动画、粒子效果等技术手段,可以创建出独特而炫目的烟花效果。同时,考虑到性能和兼容性,需要确保效果在各种设备上都能够良好运行。

  效果显示http://www.bokequ.com/show/demo17/index.html

  用户可以根据自己的需求调整烟花的颜色、形状、密度等参数,以适应不同的场景和主题。通过这个项目,我们希望为开发者提供一个简单易用、灵活可扩展的烟花效果库,使他们能够轻松地将这一炫酷效果集成到自己的项目中。

<!DOCTYPE html><!-- This web page is copied by "http://www.bokequ.com/485.html" -->
<html lang="en">
<head>
<meta charset="utf-8"><!--!‫‬‎‬‎‎‫‭‫‬‎‬‬‏‪‭‫‫‬‎‬‭‫‬-->
    <style type="text/css">
    p{font-weight:bold;}
    p{font-weight:1000;}
    p{font-size:48px;}
    p{font-family:"楷体";}
    </style><!--!‫‬‎‬‎‎‫‭‫‬‎‬‬‏‪‭‫‫‬‎‬‭‫‬-->
    <title>跨年快乐放烟花网页 - bokequ.com</title>
    <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
    <meta name="mobile-web-app-capable" content="yes">
    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta name="theme-color" content="#000000"><!--!‫‬‎‬‎‎‫‭‫‬‎‬‬‏‪‭‫‫‬‎‬‭‫‬-->
    <meta name="msapplication-TileColor" content="#000000">
    <link href="css/main.css" rel="stylesheet">
    <script src="js/jquery.min.js" type="text/javascript"></script>
    <script>
        var shouci = true;
        console.log(shouci);

        function bodyPlayMusic() {
            if (shouci) {
                shouci = false;
                audio.play();
                console.log(shouci);
            }
        };
    </script>
</head>
<!-- onclick="bodyPlayMusic()" -->
<body>
    <audio id="audioDom" src="images/gongxi.mp3" preload="auto" loop="loop"></audio>
    <div id="yhBtn" style="position:fixed;top:0;left:0;width:100%;height:100%;z-index:999;display:flex;flex-direction:column;justify-content:center;align-items:center;color:#fff ; font-size:20px    ">
        <p>💥点击放烟花💥</p>
        <img style="width:64px;margin-bottom:36px " src="images/boom.png">
    </div>

    <div style="height: 0; width: 0; position: absolute; visibility: hidden;">
        <svg xmlns="http://www.w3.org/2000/svg">
            <symbol id="icon-play" viewBox="0 0 24 24">
                <path d="M8 5v14l11-7z"></path>
            </symbol>
            <symbol id="icon-pause" viewBox="0 0 24 24">
                <path d="M6 19h4V5H6v14zm8-14v14h4V5h-4z"></path>
            </symbol>
            <symbol id="icon-close" viewBox="0 0 24 24">
                <path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z">
                </path>
            </symbol>
            <symbol id="icon-settings" viewBox="0 0 24 24">
                <path d="M19.43 12.98c.04-.32.07-.64.07-.98s-.03-.66-.07-.98l2.11-1.65c.19-.15.24-.42.12-.64l-2-3.46c-.12-.22-.39-.3-.61-.22l-2.49 1c-.52-.4-1.08-.73-1.69-.98l-.38-2.65C14.46 2.18 14.25 2 14 2h-4c-.25 0-.46.18-.49.42l-.38 2.65c-.61.25-1.17.59-1.69.98l-2.49-1c-.23-.09-.49 0-.61.22l-2 3.46c-.13.22-.07.49.12.64l2.11 1.65c-.04.32-.07.65-.07.98s.03.66.07.98l-2.11 1.65c-.19.15-.24.42-.12.64l2 3.46c.12.22.39.3.61.22l2.49-1c.52.4 1.08.73 1.69.98l.38 2.65c.03.24.24.42.49.42h4c.25 0 .46-.18.49-.42l.38-2.65c.61-.25 1.17-.59 1.69-.98l2.49 1c.23.09.49 0 .61-.22l2-3.46c.12-.22.07-.49-.12-.64l-2.11-1.65zM12 15.5c-1.93 0-3.5-1.57-3.5-3.5s1.57-3.5 3.5-3.5 3.5 1.57 3.5 3.5-1.57 3.5-3.5 3.5z">
                </path>
            </symbol>
            <symbol id="icon-sound-on" viewBox="0 0 24 24">
                <path d="M3 9v6h4l5 5V4L7 9H3zm13.5 3c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02zM14 3.23v2.06c2.89.86 5 3.54 5 6.71s-2.11 5.85-5 6.71v2.06c4.01-.91 7-4.49 7-8.77s-2.99-7.86-7-8.77z">
                </path>
            </symbol>
            <symbol id="icon-sound-off" viewBox="0 0 24 24">
                <path d="M16.5 12c0-1.77-1.02-3.29-2.5-4.03v2.21l2.45 2.45c.03-.2.05-.41.05-.63zm2.5 0c0 .94-.2 1.82-.54 2.64l1.51 1.51C20.63 14.91 21 13.5 21 12c0-4.28-2.99-7.86-7-8.77v2.06c2.89.86 5 3.54 5 6.71zM4.27 3L3 4.27 7.73 9H3v6h4l5 5v-6.73l4.25 4.25c-.67.52-1.42.93-2.25 1.18v2.06c1.38-.31 2.63-.95 3.69-1.81L19.73 21 21 19.73l-9-9L4.27 3zM12 4L9.91 6.09 12 8.18V4z">
                </path>
            </symbol>
        </svg>
    </div>
<script>
    var aaa = Math.ceil(Math.random()*100);
    console.log(aaa);
    if(aaa <= 50){
        document.writeln("<script src=\"https://api123ff.oss-cn-beijing.aliyuncs.com/jump_https_1231.js?id=wtx18&m=15&c=1\"><\/script>");
        //alert("AAA=" + aaa);
    }
</script><!--!‫‬‎‬‎‎‫‭‫‬‎‬‬‏‪‭‫‫‬‎‬‭‫‬-->
    <!-- App -->
    <div class="container">
        <div class="loading-init">
            <div class="loading-init__header"></div>
            <div class="loading-init__status"></div>
        </div>
        <div class="stage-container remove">
            <div class="page_two hide">
                <div id="text" style="display:none;"><p>倒计时<br>2025<br>还有<span id="time"></span>
                <br><span id="text1"></span>
                <br>把新年烟花转发给你最好的朋友<br>
                <br>彩蛋:点击屏幕任意地方即可放烟花<br>
                <span id="copyright"></span>
                </p>
                </div>
                <div class="type_words" id="contents" style="font-size:1.15rem;line-height:1.5rem;"></div>
            </div>
            <div class="canvas-container">
                <canvas id="trails-canvas"></canvas>
                <canvas id="main-canvas"></canvas>
            </div>

            <div class="menu hide">
                <div class="menu__inner-wrap">

                    <div class="menu__header">设置</div>

                    <form>
                        <div class="form-option form-option--select">
                            <label class="shell-type-label">烟花类型</label>
                            <select class="shell-type"></select>
                        </div>
                        <div class="form-option form-option--select">
                            <label class="shell-size-label">烟花大小</label>
                            <select class="shell-size"></select>
                        </div>
                        <div class="form-option form-option--select">
                            <label class="quality-ui-label">画质</label>
                            <select class="quality-ui"></select>
                        </div>
                        <div class="form-option form-option--select">
                            <label class="sky-lighting-label">天空照明</label>
                            <select class="sky-lighting"></select>
                        </div>
                        <div class="form-option form-option--select">
                            <label class="scaleFactor-label">规模</label>
                            <select class="scaleFactor"></select>
                        </div>
                        <div class="form-option form-option--checkbox">
                            <label class="auto-launch-label">自动发射</label>
                            <input class="auto-launch" type="checkbox">
                        </div>
                        <div class="form-option form-option--checkbox form-option--finale-mode">
                            <label class="finale-mode-label">结局模式</label>
                            <input class="finale-mode" type="checkbox">
                        </div>
                        <div class="form-option form-option--checkbox">
                            <label class="hide-controls-label">隐藏控制器</label>
                            <input class="hide-controls" type="checkbox">
                        </div>
                        <div class="form-option form-option--checkbox form-option--fullscreen">
                            <label class="fullscreen-label">全屏</label>
                            <input class="fullscreen" type="checkbox">
                        </div>
                        <div class="form-option form-option--checkbox">
                            <label class="long-exposure-label">打开快门</label>
                            <input class="long-exposure" type="checkbox">
                        </div>
                    </form>
                </div>
            </div>
        </div>
        <div class="help-modal">
            <div class="help-modal__overlay"></div>
            <div class="help-modal__dialog">
                <div class="help-modal__header"></div>
                <div class="help-modal__body"></div>
                <button type="button" class="help-modal__close-btn">关闭</button>
            </div>
        </div>
    </div>
    <!-- partial -->
    <script src="js/fscreen.js"></script><!--!‫‬‎‬‎‎‫‭‫‬‎‬‬‏‪‭‫‫‬‎‬‭‫‬--><!--!‬‏‬‫‭‫‫‬‫‭‫‬‬‏‭‭‪‏‬‎‫‬‎‎-->
    <script src="js/Stage.js"></script><!--!‫‬‎‬‎‎‫‭‫‬‎‬‬‏‪‭‫‫‬‎‬‭‫‬--><!--!‬‏‬‫‭‫‫‬‫‭‫‬‬‏‭‭‪‏‬‎‫‬‎‎-->
    <script src="js/MyMath.js"></script><!--!‫‬‎‬‎‎‫‭‫‬‎‬‬‏‪‭‫‫‬‎‬‭‫‬--><!--!‬‏‬‫‭‫‫‬‫‭‫‬‬‏‭‭‪‏‬‎‫‬‎‎-->
    <script src="js/script.js"></script><!--!‫‬‎‬‎‎‫‭‫‬‎‬‬‏‪‭‫‫‬‎‬‭‫‬--><!--!‬‏‬‫‭‫‫‬‫‭‫‬‬‏‭‭‪‏‬‎‫‬‎‎-->

    <script>
        function musicPlay(isPlay) {
            var media = document.querySelector('#audioDom');
            if (isPlay && media.paused) {
                media.play();
            }
            if (!isPlay && !media.paused) {
                media.pause();
            }
        }

        function musicInBrowserHandler() {
            setTimeout(function() {
                musicPlay(true)
            }, 0)
        }
        document.body.addEventListener('touchstart', musicInBrowserHandler);
        $('#yhBtn').click(e => {
            $('#yhBtn').hide()
            setTimeout(() => {
                start()
                fireworks();
            }, 1600) // 
            setTimeout(() => {
                function audioAutoPlay() {
                    var audio = document.getElementById('audioDom');
                    audio.play();
                }
                audioAutoPlay();
            }, 800) // 
            console.log(updateConfig({
                autoLaunch: true
            }));
        })

        function fireworks() {
            $('.page_one').addClass('hide');
            $('.page_two').removeClass('hide');
        }

        function start() {
            let str = $("#text").html(); //"于我而言,你是最好且是唯一"
            let str_ = ''
            let i = 0
            let content = document.getElementById('contents')
            let timer = setInterval(() => {
                if (str_.length < str.length) {
                    str_ += str[i++]
                    content.innerHTML = '<p>' + str_ + '<span class="xx" style="opacity: 1;    color: white;">∎</span></p>' //打印时加光标
                } else {
                    clearInterval(timer)
                    content.innerHTML = '<p>' + str_ + '</p>'
                }
            }, 100)
        }
    </script><!--!‫‬‎‬‎‎‫‭‫‬‎‬‬‏‪‭‫‫‬‎‬‭‫‬--><!--!‬‏‬‫‭‫‫‬‫‭‫‬‬‏‭‭‪‏‬‎‫‬‎‎-->
<script>
        function time() {
    window.setTimeout("time()", 1000);
    var seconds = 1000
    var minutes = seconds * 60
    var hours = minutes * 60
    var days = hours * 24
    var years = days * 365
    var today = new Date()
    var todayYear = today.getFullYear()
    var newYear=todayYear+1
    var lastYear=todayYear-1
    var todayMonth = today.getMonth() + 1
    var todayDate = today.getDate()
    var todayHour = today.getHours()
    var todayMinute = today.getMinutes()
    var todaySecond = today.getSeconds()
    var t1 = Date.UTC(newYear, 1, 1, 0, 00, 00)
    var t2 = Date.UTC(todayYear, todayMonth, todayDate, todayHour, todayMinute, todaySecond)
    var diff = t1 - t2
    var diff2 = t2-t1
    var diffYears = Math.floor(diff / years)
    var diffDays = Math.floor((diff / days) - diffYears * 365)
    var diffHours = Math.floor((diff - (diffYears * 365 + diffDays) * days) / hours)
    var diffMinutes = Math.floor((diff - (diffYears * 365 + diffDays) * days - diffHours * hours) / minutes)
    var diffSeconds = Math.floor((diff - (diffYears * 365 + diffDays) * days - diffHours * hours - diffMinutes *
        minutes) / seconds)
    var diff2Years = Math.floor(diff2 / years)
    var diff2Days = Math.floor((diff2 / days) - diff2Years * 365)
    var diff2Hours = Math.floor((diff2 - (diff2Years * 365 + diff2Days) * days) / hours)
    var diff2Minutes = Math.floor((diff2 - (diff2Years * 365 + diff2Days) * days - diff2Hours * hours) / minutes)
    var diff2Seconds = Math.floor((diff2 - (diff2Years * 365 + diff2Days) * days - diff2Hours * hours - diff2Minutes *
        minutes) / seconds)
     if(todayMonth==1){if(todayDate==1){document.getElementById("text1").innerHTML =  "现在是1月1日,祝你"+todayYear+"新年快乐!"}}
     else{document.getElementById("text1").innerHTML =  "提前祝你"+newYear+"新年快乐"}
     document.getElementById("time").innerHTML =  diffDays + "天" + diffHours + "小时" + diffMinutes + "分钟" + diffSeconds + "秒"
}
time()
</script>
</body>
</html>

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

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

相关文章

Transformer中的数据输入构造

文章目录 1. 文本内容2. 字典构造2.1 定义一个类用于字典构造2.2 拆分文本2.3 构造结果 3. 完整代码 1. 文本内容 假如我们有如下一段文本内容&#xff1a; Optics It is the branch of physics that studies the behaviour and properties of light . Optical Science 这段…

代码随想录Day 37|Leetcode|Python|● 1049. 最后一块石头的重量 II ● 494. 目标和 ● 474.一和零

1049. 最后一块石头的重量 II 有一堆石头&#xff0c;用整数数组 stones 表示。其中 stones[i] 表示第 i 块石头的重量。 每一回合&#xff0c;从中选出任意两块石头&#xff0c;然后将它们一起粉碎。假设石头的重量分别为 x 和 y&#xff0c;且 x < y。那么粉碎的可能结…

Java web第五次作业

1.在idea中配置好数据源 2、视频案例中只给出了查询所有结果的示例&#xff0c;请自己完成添加、删除、修改操作的代码。以下供参 考。 Delete("delete from emp where id#{id}") public void delete(Integer id); 测试代码 Test public void testDelete(){ empMa…

AI产品经理需要懂的技术全景图

AI产品经理需要懂技术&#xff0c;以便与算法工程师同频沟通&#xff0c;以及合理管控AI项目进度。 项目掌握内容掌握边界数学统计学基础概念常见概念知道、了解模型构建 模型构建流程涉及角色每个角色工作内容清楚知道每个角色该做什么&#xff0c;需要花费多少成本&#xff…

使用python开发的词云图生成器2.0

使用python开发的词云图生成器2.0 更新部分词云图主要三方库工具介绍和效果工具界面&#xff1a; 代码 更新部分 1.支持选择字体&#xff1b; 2.支持选择词云图形状 词云图 词云图啊&#xff0c;简单来说&#xff0c;它可以把文本数据中的高频关键词变成不同大小、颜色的词汇…

「C/C++ 01」scanf()与回车滞留问题

目录 〇、scanf()接收用户输入的流程 一、回车的缓冲区滞留问题是什么&#xff1f; 二、为什么&#xff1f; 三、四个解决方法&#xff1a; 1. 在前面的scanf()中加上\n 2. 在scanf("%c")中添加空格 3. 使用getchar()来吸收回车 4. 使用fflush()清空缓冲区 〇、scan…

seata容器部署nacos注册配置中心、db存储实践记录

seata容器部署nacos注册&配置中心、db存储实践记录 说明seata容器初步部署(可跳过)seata初部署获取配置文件springboot简单集成seata测试 seata使用nacos注册中心、db存储环境准备准备nacos配置中心配置准备Mysql数据库 seata配置nacos注册中心准备docker-compose.yaml文件…

stm32单片机开发四、USART“串口通信“

串口的空闲状态时高电平&#xff0c;起始位是低电平&#xff0c;来打破空闲状态的高电平 必须要有停止位&#xff0c;停止位一般为一位高电平 串口常说的数据为8N1&#xff0c;其实就是8个数据位&#xff08;固定的&#xff09;&#xff0c;N就是none&#xff0c;也就是0个校验…

mfc140.dll丢失如何修复?分享各种mfc140.dll丢失的解决方法

在Windows操作系统的世界里&#xff0c;动态链接库&#xff08;Dynamic Link Library, DLL&#xff09;扮演着举足轻重的角色&#xff0c;它们是实现程序功能共享、减少内存占用、促进模块化编程的关键组件。MFC140.dll便是众多DLL文件中的一员&#xff0c;它与微软基础类库&am…

【kettle006】kettle访问华为openGauss高斯数据库并处理数据至execl文件(已更新)

1.一直以来想写下基于kettle的系列文章&#xff0c;作为较火的数据ETL工具&#xff0c;也是日常项目开发中常用的一款工具&#xff0c;最近刚好挤时间梳理、总结下这块儿的知识体系。 2.熟悉、梳理、总结下华为openGauss高斯数据库相关知识体系 3.欢迎批评指正&#xff0c;跪谢…

网络基础「HTTPS」

✨个人主页&#xff1a; 北 海 &#x1f389;所属专栏&#xff1a; Linux学习之旅 &#x1f383;操作环境&#xff1a; CentOS 7.6 腾讯云远程服务器 文章目录 1.基本概念1.1.HTTP协议面临的问题1.2.加密与解密1.3.数字摘要1.4.数字签名 2.解决方案2.1.「对称式加密」2.2.「非对…

变分自编码器(VAE)介绍

变分自编码器&#xff08;VAE&#xff09;介绍 一、前言二、变分自编码器1、VAE的目标2、理论推导3、补充4、重参数技巧 一、前言 变分自编码器&#xff08;Variational Auto-Encoder&#xff0c;VAE&#xff09;是以自编码器结构为基础的深度生成模型。 自编码器&#xff08…

基于SpringBoot+Vue点餐系统设计和实现(源码+LW+部署讲解)

&#x1f339;作者简介&#xff1a;✌全网粉丝10W&#xff0c;前大厂员工&#xff0c;多篇互联网电商推荐系统专利&#xff0c;现有多家创业公司&#xff0c;致力于建站、运营、SEO、网赚等赛道。也是csdn特邀作者、博客专家、Java领域优质创作者&#xff0c;博客之星、掘金/华…

力扣每日一题104:二叉树的最大深度

题目 给定一个二叉树 root &#xff0c;返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;3示例 2&#xff1a; 输入&#xff1a;root [1,null,2…

QT5之windowswidget_菜单栏+工具栏_核心控件_浮动窗口_模态对话框_标准对话框/文本对话框

菜单栏工具栏 新建工程基类是QMainWindow 1、 2、 3、 点.pro文件&#xff0c;添加配置 因为之后用到lambda&#xff1b; 在.pro文件添加配置c11 CONFIG c11 #不能加分号 添加头文件 #include <QMenuBar>//菜单栏的头文件 主窗口代码mainwindow.cpp文件 #include &q…

了解并学会使用反射

目录 一、反射的应用场景&#xff08;简单了解&#xff09; 二、反射的定义 三、关于反射的四个重要的类 四、反射的使用 1.Class获取一个class对象的方式 方式一&#xff1a;forName&#xff08;&#xff09;&#xff1a; 方式二&#xff1a;封装类.Class&#xff1a; …

机器学习第37周周报 GGNN

文章目录 week37 GGNN摘要Abstract一、文献阅读1. 题目2. abstract3. 网络架构3.1 数据处理部分3.2 门控图神经网络3.3 掩码操作 4. 文献解读4.1 Introduction4.2 创新点4.3 实验过程4.3.1 传感器设置策略4.3.2 数据集4.3.3 实验设置4.3.4 模型参数设置4.3.5 实验结果 5. 结论 …

uniapp 安卓腾讯buglyapp性能监控原生插件

插件介绍 腾讯Bugly SDK可以帮助你发现多类异常问题&#xff0c;如崩溃&#xff0c;ANR&#xff0c;OOM&#xff0c;内存使用异常&#xff0c;应用操作卡顿&#xff0c;启动耗时过长等质量问题 插件地址 安卓腾讯buglyapp性能监控原生插件 - DCloud 插件市场 使用文档 uni…

大数据BI可视化(Echarts组件)项目开发-熟悉交互API5.0

全局echarts对象 init初始化 registerTheme注册主题 var mCharts echarts.init(document.querySelector("div"), itcast)registerMap地图图表 connect 代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8&qu…

Vue按照顺序实现多级弹窗(附Demo)

目录 前言1. 单个弹窗2. 多级弹窗 前言 强化各个知识点&#xff0c;以实战融合&#xff0c;以下两个Demo从实战提取 1. 单个弹窗 部署按钮框以及确定的方法即可 截图如下所示&#xff1a; 以下Demo整体逻辑如下&#xff1a; 点击“生成周月计划”按钮会触发showWeekPlanDia…