JS圣诞树

news2024/12/24 21:05:25
✅作者简介:热爱国学的Java后端开发者,修心和技术同步精进。
🍎个人主页: Java Fans的博客
🍊个人信条:不迁怒,不贰过。小知识,大智慧。
💞当前专栏: 前端案例分享专栏
✨特色专栏: 国学周更-心性养成之路
🥭本文内容:JS圣诞树
更多内容点击 👇
       QQ注册界面仿写(HTML+CSS+JS)

💖 前言

一年一度的圣诞节就要到了,最近大家都还在坚持学习吗?本人昨天也不幸杨过了,今天满血复活,是什么给了我这么大的动力?我想应该是学习!今天趁着圣诞节到来之前,送大家一颗吉祥的圣诞树,愿所有的朋友都能健健康康,平平安安的挺过这最艰难的时刻!

💖 效果展示

💖 代码分享

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <link rel="stylesheet" href="css/domtree.css">
        <style>
            body{
                background-color: black;
            }
            #c{
                width: 1080px;
                height: 1080px;
            }
        </style>
    </head>
    <body>
        <canvas id="c">
            <script>
                var collapsed = true;
                function toggle() {
                    var fs = top.document.getElementsByTagName('frameset')[0];
                    var f = fs.getElementsByTagName('frame');
                    if (collapsed) {
        
                        fs.rows = '30px,*';
        
                        fs.noResize = false;
        
                        f[0].noResize = false;
        
                        f[1].noResize = false;
        
                    }
        
                    else {
        
                        fs.rows = '30px,*';
        
                        fs.noResize = true;
        
                        f[0].noResize = true;
        
                        f[1].noResize = true;
        
                    }
        
                    collapsed = !collapsed;
        
                }
        
            </script>
        
            <script>
        
                var b = document.body;
        
                var c = document.getElementsByTagName('canvas')[0];
        
                var a = c.getContext('2d');
        
                document.body.clientWidth;
        
            </script>
        
            <script>
        
                M = Math;
        
                Q = M.random; J = [];
        
                U = 14;
        
                T = M.sin;
        
                E = M.sqrt;
        
                for (O = k = 0; x = z = j = i = k < 200;)
        
                    with (M[k] = k ? c.cloneNode(0) : c) {
        
                        width = height = k ? 100 : W = 450;
        
                        with (getContext('2d'))
        
                        if (k > 10 | !k)
        
                            for (
        
                                font = '60px Impact',
        
                                V = 'rgba('; I = i * U, fillStyle = k ? k == 13 ? V + '305,305,315,.15)' :
        
                                    V + (147 + I) + ',' + (k % 2 ? 128 + I : 0) + ',' + I + ',.5)' : '#cca', i < 7;)
        
                                beginPath(fill(arc(U - i / 3, 24 - i / 2, k == 13 ? 4 - (i++) / 2 : 8 - i++, 0, M.PI * 2, 1)));
        
                        else for (;
        
                            x = T(i),
        
                            y = Q() * 2 - 1,
        
                            D = x * x + y * y,
        
                            B = E(D - x / .9 - 1.5 * y + 1),
        
                            R = 67 * (B + 1) * (L = k / 9 + .8) >> 1,
        
                            i++ < W;
        
                        )
        
                            if (D < 1)
        
                                beginPath(strokeStyle = V + R + ',' + (R + B * L >> 0) + ',40,.1)'),
        
                                    moveTo(U + x * 8, U + y * 8),
        
                                    lineTo(U + x * U, U + y * U),
        
                                    stroke();
        
                        for (
        
                            y = H = k + E(k++) * 25,
        
                            R = Q() * W;
        
                            P = 3, j < H;)
        
                            J[O++] = [
        
                                x += T(R) * P + Q() * 6 - 3, y += Q() * U - 8,
        
                                z += T(R - 11) * P + Q() * 6 - 3,
        
                                j / H * 20 + ((j += U) > H & Q() > .8 ? Q(P = 9) * 4 : 0) >> 1]
        
                    }
        
                setInterval(function G(m, l) {
        
                    A = T(D - 11);
        
                    if (l)
        
                        return (
        
                            m[2] - l[2]) * A + (l[0] - m[0]) * T(D);
        
                    a.clearRect(0, 0, W, W);
        
                    J.sort(G);
        
                    for (
        
                        i = 0;
        
                        L = J[i++];
        
                        a.drawImage(M[L[3] + 1], 207 + L[0] * A + L[2] * T(D) >> 0, L[1] >> 1)) {
        
                        if (i == 2e3)
        
                            a.fillText
        
                                ('Marry Christmas!', U, 360);
        
                        if (!(i % 7))
        
                            a.drawImage(M[13],
        
                                ((157 * (i * i) + T(D * 5 + i * i) * 5) % W) >> 0,
        
                                ((113 * i + (D * i) / 60) % (290 + i / 99)) >> 0);
        
                    }
        
                    D += .02
        
                }, 1)
        
            </script>
        </canvas>
    </body>
</html>

💖 结尾

这是我加入CSDN迎来的第一个圣诞节,很开心在这里能遇到这么一群志同道合爱学习的博友们,未来路很长,原有彼此相伴而不感到孤单!也希望自己能创造处更多有价值的博文,帮助更多正在学习的博友去攻克他所需要的知识。

路漫漫其修远兮,吾将上下而求索。写的不好的地方,也欢迎博友们批评指正,愿意虚心接受意见,成就更好的自己!


码文不易,本篇文章就介绍到这里,如果想要学习更多Java系列知识点击关注博主,博主带你零基础学习Java知识。与此同时,对于日常生活有困扰的朋友,欢迎阅读我的第四栏目《国学周更—心性养成之路》,学习技术的同时,我们也注重了心性的养成。

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

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

相关文章

this指向问题,apply,call,bind用法及区别

1.谁调用我&#xff0c;我就指向谁。 在页面上直接打印一个consle.log&#xff08;this&#xff09;,这个this会指向window对象。如果写一个函数&#xff1a;打印this,该this会指向window。因为这个函数是挂载在这个window对象上的。对象obj的this指向的是对象&#xff0c;因为…

[ 漏洞挖掘基础篇五 ] 漏洞挖掘之 XSS 注入挖掘

&#x1f36c; 博主介绍 &#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 _PowerShell &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 &#x1f389;点赞➕评论➕收藏 养成习…

创新指南|2023年企业战略制定应避免的5大误区

在迅速发展、不断变化的当下&#xff0c;尤其是疫情黑天鹅发生之后&#xff0c;许多企业面临着高度的不确定性&#xff0c;从而亟需进行企业战略的思考。在本文中&#xff0c;战略专家Stephen Bungay指出了五个战略误区&#xff0c;并解释了它们为什么听起来正确&#xff0c;以…

基于JAVA技术的《物联网技术》课程学习网站设计与实现

开发工具(eclipse/idea/vscode等)&#xff1a; 数据库(sqlite/mysql/sqlserver等)&#xff1a; 功能模块(请用文字描述&#xff0c;至少200字)&#xff1a; 基于JAVA技术的《物联网技术》课程学习网站设计与实现 网站前台&#xff1a;关于我们、联系我们、公告信息、资料信息&a…

实现Kafka至少消费一次

实现Kafka至少消费一次默认的kafka消费者存在什么问题&#xff1f;实现至少消费一次加入重试队列再次消费使用seek方法再次消费在实际重要的场景中&#xff0c;常常需要实现消费者至少消费一次。因为使用默认的kafka消费者存在某些问题。 默认的kafka消费者存在什么问题&#x…

Django+DRF+Vue+Mysql+Redis OUC软件工程作业

交作业啦 前端&#xff1a;htmlcssjsVueElement-ui 后端&#xff1a;DjangoDRFceleryhaystackdjango_crontab 数据库&#xff1a;MysqlRedis 一些技术和功能&#xff1a; 为session、短信验证码、用户浏览记录、购物车、异步任务队列 创建缓存whoosh搜索引擎异步任务队列 用…

谷歌Recorder实现说话人自动标注,功能性与iOS语音备忘录再度拉大

在今年的 Made By Google 大会上&#xff0c;谷歌公布了 Recorder 应用的自动说话人标注功能。该功能将实时地为语音识别的文本加上匿名的说话人标签&#xff08;例如 “说话人 1” 或“说话人 2”&#xff09;。这项功能将极大地提升录音文本的可读性与实用性。 谷歌于 2019 …

Spring Cloud Alibaba Sentinel - - >流控规则初体验

源码地址&#xff1a;https://github.com/alibaba/Sentinel 新手指南&#xff1a;https://github.com/alibaba/Sentinel/wiki/新手指南#公网-demo 官方文档&#xff1a;https://sentinelguard.io/zh-cn/docs/introduction.html 注解支持文档&#xff1a;https://github.com/ali…

Android常用布局总结之(FrameLayout、ConstraintLayout)

一、FrameLayout 帧布局 这种布局类似叠加的图片&#xff0c;没有任何的定位方式&#xff0c;当我们往里面添加组件的时候&#xff0c;会默认把他们放到容器的左上角。 上面的组件显示在底层&#xff0c;下面的组件显示在上层。 如下代码&#xff0c;视图1显示在最底层&#…

虹科案例 | 光纤传感器实现了新的核磁共振应用!

背景介绍 光纤传感器已成为推动MRI最新功能套件升级和新MRI设备设计背后的关键技术。将患者的某些活动与MRI成像系统同步是越来越受重视的需求。磁场强度随着每一代的发展而增大&#xff08;3.0T是当今最高的标准&#xff09;&#xff0c;因此&#xff0c;组件的电磁透明度在每…

python---数据库操作

在python中&#xff0c;使用第三方库pymysql来执行数据库操作 命令行窗口输入 &#xff1a;pip install pymysql&#xff0c;下载第三方库 数据库查询操作 Python查询Mysql使用 fetchone() 方法获取单条数据, 使用fetchall() 方法获取多条数据。 fetchone(): 该方法获取下一…

OpManager 网络管理软件

随着网络在有线、无线和虚拟 IT 环境中的扩展&#xff0c;网络管理只会变得越来越复杂&#xff0c;使网络管理员需要他们可以获得的所有帮助。市场上有无数的网络管理解决方案&#xff0c;因此将注意力集中在正确的解决方案上非常重要。网络管理工具通常可以帮助您将网络的各种…

一行python命令让手机读取电脑文件

本文讲解python的一个内置文件传输下载器&#xff0c;可以用来在局域网内进行文件传输&#xff0c;当然可能有人会问&#xff0c;我用微信QQ也能传&#xff0c;为什么还要用python来传输下载&#xff1f;在此&#xff0c;其实我个人感觉的是&#xff0c;这种操作更简单&#xf…

【Web开发】Python实现Web服务器(Ubuntu下打包Flask)

&#x1f37a;基于Python的Web服务器系列相关文章编写如下&#x1f37a;&#xff1a; &#x1f388;【Web开发】Python实现Web服务器&#xff08;Flask快速入门&#xff09;&#x1f388;&#x1f388;【Web开发】Python实现Web服务器&#xff08;Flask案例测试&#xff09;&a…

安科瑞红外测温方案助力滁州某新能源光伏产业工厂安全用电

安科瑞 李亚俊 壹捌柒贰壹零玖捌柒伍柒 摘要&#xff1a; 近年来&#xff0c;在国家政策引导与技术革新驱动的双重作用下&#xff0c;光伏产业保持快速增长态势&#xff0c;产业规模持续扩大&#xff0c;技术迭代更新不断&#xff0c;目前已在全球市场取得优势。据统计&#…

数据结构C语言版——链式二叉树的基本操作实现

文章目录链式二叉树1. 概念2. 链式二叉树的基本操作前序遍历中序遍历后续遍历根据前序遍历构建二叉树层序遍历在二叉树中查找指定值获取二叉树节点个数获取叶子节点个数求二叉树的高度链式二叉树 1. 概念 设计不同的节点结构可构成不同形式的链式存储结构。由二叉树的定义可知…

用简单伪随机数发生器实现随机中点位移分形(Matlab代码实现)

目录 &#x1f4a5;1 概述 &#x1f4da;2 运行结果 &#x1f389;3 参考文献 &#x1f468;‍&#x1f4bb;4 Matlab代码 &#x1f4a5;1 概述 随机分形(random fractal)采用随机生成机制而得到的分形集.分形体不具有特征尺度(亦即大小尺度跨好几个量级)&#xff0c;却有…

5G无线技术基础自学系列 | 5G接入类KPI

素材来源&#xff1a;《5G无线网络规划与优化》 一边学习一边整理内容&#xff0c;并与大家分享&#xff0c;侵权即删&#xff0c;谢谢支持&#xff01; 附上汇总贴&#xff1a;5G无线技术基础自学系列 | 汇总_COCOgsta的博客-CSDN博客 接入类KPI反映了用户成功接入到网络中并…

李沐精读论文:Swin transformer: Hierarchical vision transformer using shifted windows

论文地址&#xff1a;Swin transformer: Hierarchical vision transformer using shifted windows 代码&#xff1a;官方源码 pytorch实现 SwinTransformerAPI 视频&#xff1a;Swin Transformer论文精读【论文精读】_哔哩哔哩_bilibili 本文注意参考&#xff1a;Swin Transfor…

MySql性能优化(四)索引

Index索引相关概念数据结构B树优点及用处优点用处分类技术名词回表覆盖索引最左匹配索引下推索引的匹配方式哈希索引特点代价案例组合索引案例聚簇索引与非聚簇索引聚簇索引非聚簇索引覆盖索引基本介绍优点判断参考索引相关概念 数据结构 B树 推荐一篇讲的很不错的文章&…