最近这不是快到圣诞节了嘛,用代码实现圣诞树都卷成啥样了,不行不行,我也加入卷行列。

话不多说,上图!

话不多说,上代码!

<!DOCTYPE html>
<html lang="en"><head><meta charset="utf-8"><meta name="description" content="A Christmas tree built out of form elements." /><meta name="author" content="Hakim El Hattab" /><meta http-equiv="X-UA-Compatible" content="chrome=1"><title>For HSY</title></head><body><style>
html{color:#000;background:#222222;}
a{cursor:pointer;}
html,body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td{margin:0;padding:0;}
table{border-collapse:collapse;border-spacing:0;}
fieldset,img{border:0;}
address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal;}
li{list-style:none;}
caption,th{text-align:left;}
/* h1,h2,h3,h4,h5,h6{font-size:100%;} */
q:before,q:after{content:'';}
abbr,acronym {border:0;font-variant:normal;}
sup {vertical-align:text-top;}
sub {vertical-align:text-bottom;}
input,textarea,select{font-family:inherit;font-size:inherit;font-weight:inherit;outline-style:none;outline-width:0pt;}
legend{color:#000;}
a:focus,object,h1,h2,h3,h4,h5,h6{-moz-outline-style: none; border:0px;}
/*input[type="Submit"]{cursor:pointer;}*/
strong {font-weight: bold;}
body, html {overflow: hidden;font-family: Helvetica, Arial, sans-serif;color: #fff;font-size: 11px;width: 100%;height: 100%;background: #b72424;background: -moz-radial-gradient(center, ellipse cover, #b72424 0%, #492727 100%);background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%,#b72424), color-stop(100%,#492727));background: -webkit-radial-gradient(center, ellipse cover, #b72424 0%,#492727 100%);background: radial-gradient(center, ellipse cover, #b72424 0%,#492727 100%);
}@keyframes spin {0% { transform: rotateY( 0deg ); }100% { transform: rotateY( 360deg ); }
}body {perspective: 3000px;perspective-origin: 0 20%;
}.tree {margin: 0 auto;position: relative;animation: spin 18s infinite linear;transform-origin: 50% 0;transform-style: preserve-3d;
}.tree * {position: absolute;transform-origin: 0 0;
}</style><div class="tree"></div><script src="js/domtree.js"></script><p class="project-title">❤❤❤❤❤</p><div class="credits"><a>2021.12.25</a><a>Merry Christmas</a></div><style type="text/css" media="screen">.project-title {position: absolute;left: 25px;bottom: 20px;font-size: 16px;color: #fff;}.credits {position: absolute;right: 20px;bottom: 25px;font-size: 15px;z-index: 20;color: #fff;vertical-align: middle;}.credits * + * {margin-left: 15px;}.credits a {padding: 8px 10px;color: rgba(255,255,255,0.7);border: 2px solid rgba(255,255,255,0.7);text-decoration: none;}.credits a:hover {border-color: #fff;color: #fff;}@media screen and (max-width: 1040px) {.project-title {display: none;}.credits {width: 100%;left: 0;right: auto;bottom: 0;padding: 30px 0;background: #b72424;text-align: center;}.credits a {display: inline-block;margin-top: 7px;margin-bottom: 7px;}}</style><script>var _gaq = [['_setAccount', 'UA-15240703-1'], ['_trackPageview']];(function(d, t) {var g = d.createElement(t),s = d.getElementsByTagName(t)[0];g.async = true;g.src = ('https:' == location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';s.parentNode.insertBefore(g, s);})(document, 'script');const width = 500;
const height = 600;
const quantity = 150;
const types = [ 'text', 'select', 'progress', 'meter', 'button', 'radio', 'checkbox' ];
const greetings = [ '知心宝贝','知心宝贝','Merry Christmas','Merry Christmas','Merry Christmas','Merry Christmas','知心宝贝','12月25','知心宝贝','Merry Christmas','Happy Holidays', ' 知心宝贝','12月25','知心宝贝','Merry Christmas','知心宝贝','Merry Christmas','知心宝贝' ];
let tree = document.querySelector( '.tree' ),treeRotation = 0;tree.style.width = width + 'px';
tree.style.height = height + 'px';window.addEventListener( 'resize', resize, false );// The tree
for( var i = 0; i < quantity; i++ ) {let element = null,type = types[ Math.floor( Math.random() * types.length ) ],greeting = greetings[ Math.floor( Math.random() * greetings.length ) ];let x = width/2,y = Math.round( Math.random() * height );let rx = 0,ry = Math.random() * 360,rz = -Math.random() * 15;let elemenWidth = 5 + ( ( y / height ) * width / 2 ),elemenHeight = 26;switch( type ) {case 'button':element = document.createElement( 'button' );element.textContent = greeting;element.style.width = elemenWidth + 'px';element.style.height = elemenHeight + 'px';break;case 'progress':element = document.createElement( 'progress' );element.style.width = elemenWidth + 'px';element.style.height = elemenHeight + 'px';if( Math.random() > 0.5 ) {element.setAttribute( 'max', '100' );element.setAttribute( 'value', Math.round( Math.random() * 100 ) );}break;case 'select':element = document.createElement( 'select' );element.setAttribute( 'selected', greeting );element.innerHTML = '<option>' + greetings.join( '</option><option>' ) + '</option>';element.style.width = elemenWidth + 'px';element.style.height = elemenHeight + 'px';break;case 'meter':element = document.createElement( 'meter' );element.setAttribute( 'min', '0' );element.setAttribute( 'max', '100' );element.setAttribute( 'value', Math.round( Math.random() * 100 ) );element.style.width = elemenWidth + 'px';element.style.height = elemenHeight + 'px';break;case 'text':default:element = document.createElement( 'input' );element.setAttribute( 'type', 'text' );element.setAttribute( 'value', greeting );element.style.width = elemenWidth + 'px';element.style.height = elemenHeight + 'px';}element.style.transform = `translate3d(${x}px, ${y}px, 0px) rotateX(${rx}deg) rotateY(${ry}deg) rotateZ(${rz}deg)`;tree.appendChild( element );
}// Let it snow
for( var i = 0; i < 200; i++ ) {let element = document.createElement( 'input' );element.setAttribute( 'type', 'radio' );let spread = window.innerWidth/2;let x = Math.round( Math.random() * spread ) - ( spread / 4 ),y = Math.round( Math.random() * height ),z = Math.round( Math.random() * spread ) - ( spread / 2 );let rx = 0,ry = Math.random() * 360,rz = 0;if( Math.random() > 0.5 ) element.setAttribute( 'checked', '' );element.style.transform = `translate3d(${x}px, ${y}px, ${z}px) rotateX(${rx}deg) rotateY(${ry}deg) rotateZ(${rz}deg)`;tree.appendChild( element );
}function resize() {tree.style.top = ( ( window.innerHeight - height - 100 ) / 2 ) + 'px';
}resize();</script></body>
</html>

注意:部分代码从网上获取并由我整合,侵权请联系,谢谢观看!

两百行代码实现动态圣诞树—你值得拥有相关推荐

  1. 200行Html5+CSS3+JS代码实现动态圣诞树

    一.前言 最近CSDN的热榜出现了很多用Python.C/C++等编程语言实现的圣诞树,发现很少用前端的,这篇文章用前端三大杀手Html5.CSS.Js来实现动态圣诞树. 二.圣诞树 效果展示: 备注 ...

  2. 几行代码完成动态图表绘制 | Python实战

    作者 | 小F 来源 | 法纳斯特 头图 | CSDN下载自视觉中国 关于动态条形图,小F以前推荐过「Bar Chart Race」这个库.三行代码就能实现动态条形图的绘制. 有些同学在使用的时候,会 ...

  3. python应用(1)两百行代码实现微信好友数据爬取与可视化

    前段时间发现了一个好玩的东西,一个python的第三方库itchat,它的功能很强大.只要你扫一下它所生成的二维码即可模拟登陆你的微信号,然后可以实现自动回复,爬取微信列表好友信息等功能.基于这个第三 ...

  4. 300行HTML+CSS+JS代码实现动态圣诞树

    文章目录 1. 前言 2. 效果展示 3. 准备

  5. 零基础用一百行代码完成动态的人脸识别(opencv+python)

    废话:(其实是介绍了一下该文章的大概来路)   电子化的时代到处都能看到人脸识别的用途:比如:刷脸门禁,火车站检票口,又比如检查站,还有一些比较高端的汽车还支持刷脸开门等等. 近期呢接了个学校的一个项 ...

  6. Html5+CSS3+JS代码实现动态圣诞树

    目录 一.效果展示 二.实现步骤 1.index.html 2.domtree.css 3.domtree.js 一.效果展示 整体圣诞树分为3个部分,书的主干.粒子特效.树上的卡片 树上的卡片(重点 ...

  7. GO string 转map_用go语言,只需两百行代码就能搞定并发聊天室!

    我们都知道,Go语言就是为了高并发而诞生的,而且Go语言也是第一个在语言层面实现并发的,在一个进程内部可以启动成千上万个goroutine(例程.协程),这与线程启动是不同的,线程还是要考虑CPU核心 ...

  8. Python编曲实践(八):我,乔鲁诺·乔巴那,能用两百行代码写出JOJO黄金之风里我自己的出场曲!

    前言 前些天笔者写的文章 Python编曲实践(七):整整一百行Python代码写出黑人抬棺梗曲<Astronomia>的旋律 受到了大家的许多支持和好评,本篇文章挑战更复杂.更有挑战性, ...

  9. 两百行代码实现简易扫雷 (详解)

    首先进行规化,三子棋的实现中已说明过的点在此处不在赘述 一.菜单 相关作用在实现三子棋时已进行过概述,此处直接上代码: void menu() {printf("************** ...

最新文章

  1. uniapp 生成Android证书及.keystore转.jks、.pem
  2. 3559A sdk卡
  3. weblogic管理2 - 创建并启动一个managed server
  4. for命令不跳过空白行_饭店火夫说漏嘴:炒鸡肉时,很多人跳过这一步,难怪鸡肉不好吃...
  5. linux 单网卡 路由,CentOS下双网卡单网关路由配置
  6. python短信接口_短信接口DEMO-PYTHON
  7. 树的同构模板题(法1.最小表示法+法2.树哈希)
  8. 【动态规划】石子合并 (ssl 2863)
  9. html中contentEditable属性
  10. Largest Number 179
  11. Android性能优化(31)---虚拟机调优
  12. python爬虫架构设置_Python爬虫进阶三之Scrapy框架安装配置
  13. python创建一个csv文件_python如何写入csv
  14. Matlab Tricks(十二)—— 矩阵阈值化的实现
  15. linux的使用 --- 安装node和express
  16. 第九十六章 SQL函数 MOD
  17. 回溯法解决部落冲突问题
  18. 数学二、英语二、政治
  19. 什么是用户感?看看这4个产品经理的感性设计
  20. [Halcon] WriteImage保存图像崩溃问题

热门文章

  1. amazon - sellercentral 之 sellercentral report - long term storage fee report
  2. java while求百钱买百鸡问题_java - 百钱百鸡小算法
  3. 请编程实现求解s=1/(1*2)+1/(2*3)+1/(3*4)+……+1/(10*11),输出结果保留两位小数。
  4. linux内核中的copy_to_user和copy_from_user(一)
  5. nr技术之---MIMO
  6. K3ERP web登录问题解决
  7. 信息论Matlab仿真——信息量的计算
  8. 【ABAP系列】SAP ABAP BDC_OKCODE 解释
  9. 【opencv】18、视频操作
  10. 《歪笑小说》—— 读后总结