前言
Single dog, Single dog, Single all the day。随着音乐的响起,我又单
了一年, 回想上次谈恋爱还是在上次。 不知不觉 2021 已经落入尾声了,今天已经是 24
号了, 你们的圣诞树准备好了吗?今晚你们有人陪吗? 有人给你穿圣诞套装吗? 噗,醒醒, 你没对象。作为一个 Single dog
+ 卑微底层前端
, 我们要自觉, 别人圣诞节恩恩爱爱, 我们就自己动手画个 圣诞树
, 然后再发给plmm, 这样我们的爱情不就来了吗!!!
一、准备好你的开发神器
第一步,打开你的神器 Vscode
, 然后新建一个 html
页面, 输入你的 !
, 好了结束, 接下来就 C + V 了。哈哈哈哈嗝没错就是 CV, 一位合格的光头强,就应该会逛各种论坛, copy别人的代码, 没错我也是!!!前两天在问了下小掘
, “前端的圣诞礼物”, 好家伙就给我跳出来一大堆, 但是我在里面搜了搜看了看, emmmm, 还是我来动手(拼装)吧。 准备工作做好了后,新建一个空白页面, 然后用canvas
画出一颗圣诞树, 不多 BB, 直接上代码。
<ul class="ones">
<li class="sphere"></li>
<p class="text">滴~圣诞快乐</p>
</ul>
<ul class="twos"> <li class="top-star"> </li> <li class="top"> <ul class="tree-pts"> <li class="pts left"></li> <li class="pts left"></li> <li class="pts left"></li> <li class="pts left"></li> <li class="pts left"></li> <li class="pts left"></li> <li class="pts left"></li> <li class="pts left"></li> <li class="pts right"></li> <li class="pts right"></li> <li class="pts right"></li> <li class="pts right"></li> <li class="pts right"></li> <li class="pts right"></li> <li class="pts right"></li> </ul> </li> <li class="middle first"> <ul class="tree-pts"> <li class="pts left"></li> <li class="pts left"></li> <li class="pts left"></li> <li class="pts left"></li> <li class="pts left"></li> <li class="pts left"></li> <li class="pts left"></li> <li class="pts left"></li> <li class="pts right"></li> <li class="pts right"></li> <li class="pts right"></li> <li class="pts right"></li> <li class="pts right"></li> <li class="pts right"></li> <li class="pts right"></li> </ul> </li> <li class="middle second"> <ul class="tree-pts"> <li class="pts left"></li> <li class="pts left"></li> <li class="pts left"></li> <li class="pts left"></li> <li class="pts left"></li> <li class="pts left"></li> <li class="pts left"></li> <li class="pts left"></li> <li class="pts right"></li> <li class="pts right"></li> <li class="pts right"></li> <li class="pts right"></li> <li class="pts right"></li> <li class="pts right"></li> <li class="pts right"></li> </ul> </li> <li class="middle third"> <ul class="tree-pts"> <li class="pts left"></li> <li class="pts left"></li> <li class="pts left"></li> <li class="pts left"></li> <li class="pts left"></li> <li class="pts left"></li> <li class="pts left"></li> <li class="pts left"></li> <li class="pts right"></li> <li class="pts right"></li> <li class="pts right"></li> <li class="pts right"></li> <li class="pts right"></li> <li class="pts right"></li> <li class="pts right"></li> </ul> </li> <li class="bottom outer"> <ul class="tree-pts"> <li class="pts left"></li> <li class="pts left"></li> <li class="pts left"></li> <li class="pts left"></li> <li class="pts left"></li> <li class="pts left"></li> <li class="pts left"></li> <li class="pts left"></li> <li class="pts right"></li> <li class="pts right"></li> <li class="pts right"></li> <li class="pts right"></li> <li class="pts right"></li> <li class="pts right"></li> <li class="pts right"></li> </ul> </li> <li class="stem"> <ul class="tree-stem"> <li class="stem"></li> <li class="gift g1"></li> <li class="gift g2"></li> <li class="gift g3"></li> <li class="gift g4"></li> <li class="gift g5"></li> <li class="gift g6"></li> <li class="gift g7"></li> <li class="gift g8"></li> <li class="gift g9"></li> <li class="shadow"></li> </ul> </li> </ul>
<ul class="thirds"> <li class="star"></li> <li class="ball b1"></li> <li class="ball b2"></li> <li class="ball b3"></li> <li class="ball b4"></li> <li class="ball b5"></li> <li class="ball b6"></li> <li class="ball b7"></li> <li class="ball b8"></li> <li class="ball b9"></li> <li class="ball b10"></li> <li class="ball b11"></li> <li class="ball b12"></li> <li class="ball b13"></li> <li class="ball b14"></li> <li class="ball b15"></li> <li class="ball b16"></li> <li class="ball b17"></li> <li class="ball b18"></li> <li class="ball b19"></li> <li class="ball b20"></li> <li class="light l1"></li> <li class="light l2"></li> <li class="light l3"></li> <li class="light l4"></li> <li class="light l5"></li> <li class="light l6"></li> <li class="light l7"></li> <li class="light l8"></li> <li class="light l9"></li> <li class="light l10"></li> <li class="light l11"></li> <li class="light l12"></li> <li class="light l13"></li> <li class="light l14"></li> <li class="light l15"></li> <li class="light l16"></li> <li class="light l17"></li> <li class="light l18"></li> <li class="light l19"></li> <li class="light l20"></li> <li class="light l21"></li> <li class="light l22"></li> <li class="light l23"></li> <li class="light l24"></li> <li class="light l25"></li> </ul>
麻了麻了,我第一眼看到这个代码时就麻了, 真的是用全装 html 画了一颗圣诞树啊, 给我的话, 我就一张图片解决了哈哈哈嗝,有木有啊
Okkkk, html完了再上css
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
background-color: #020024;
}
此处省略一千行...
Emmmm, 真的我是真的佩服写出这颗圣诞树的原创作者, 是真的666, css我是真的省略了一千行, 当然,css既然省略了, 那为什么html
复制这么多,单纯!, 当然是为了水字数啊哈哈哈哈哈嗝麻麻的。好的圣诞树画完了,我们看下效果!
二、加点雪花
Emmm, 不戳不戳, 树画完了,我弄完的时候发现就一棵树有点单一, 然后我就弄了个雪花, 我们再装饰一下, 加点雪花, 来, 上雪花
代码
const canvas = document.querySelector("#snow")
const W = canvas.clientWidth
const H = canvas.clientHeight
// 设置canvas画布大小
canvas.setAttribute("width", W)
canvas.setAttribute("height", H)
const ctx = canvas.getContext("2d")
const config = {
number: 200,
snowArr: [],
pic: "https://www.deanhan.cn/wp-content/uploads/2017/12/snow.png",
speed: 0
}
let snowImg = new Image()
snowImg.src = config.pic
for (let i = 0; i < config.number; i++) {
config.snowArr.push({
x: Math.random() * W,
y: Math.random() * H,
toX: Math.random(),
toY: Math.random() * 1 + 1,
size: Math.random() * 20 + 5
})
}
console.log(config)
const dropAnimation = () => {
ctx.clearRect(0, 0, W, H)
for (let i = 0; i < config.snowArr.length; i++) {
let snow = config.snowArr[i]
// ctx.beginPath()
// ctx.arc(snow.x, snow.y, snow.size, 0, Math.PI * 2, true)
// ctx.fillStyle = "#666"
// ctx.fill()
ctx.drawImage(snowImg, snow.x, snow.y, snow.size, snow.size)
snow.x = snow.x > W ? 0 : snow.x + snow.toX
snow.y = snow.y > H ? 0 : snow.y + snow.toY
}
requestAnimationFrame(dropAnimation)
}
requestAnimationFrame(dropAnimation)
Okkk,雪花长这个样啦!
哈哈哈嗝虽然我是白嫖复制怪, 但是我也优化了一下, 呜呜呜没有功劳也有苦劳吧, 所以加上了我的标签 @DanCheO
,求求了千万别说我!!!
三、成品来咯
好啦,经过我的不懈努力, 终于完成了我们圣诞树,但是还是觉得有点单调, 然后我又花了花了那么多的心思找了一张背景图, 然后再Come Some music, Eason
的 圣诞结 , 剑来!!!,错了错了, 成品
来!!!
好的弄完了,完整项目当然是去我已经积了几层灰的git里拉啦, 冲 !!!完整项目
今天的文章圣诞来了,你们的圣诞树准备好了吗!!!分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/14893.html