圣诞临近,小包送给大家一个雪人,一群麋鹿,一堆糖果,一句祝福,圣诞快乐!

简介: 圣诞临近,小包送给大家一个雪人,一群麋鹿,一堆糖果,一句祝福,圣诞快乐!

前言


圣诞快要来临了,几天前小包设想了一个巨好的创意(自我感觉自我感觉🎈),但昨天中午突然灵光一动,有了新点子,圣诞前估计是不能预期交付了,那就元旦见吧~~~。


于是小包就改变了主意,大创意做不了,就来点小零头。本来想画个圣诞树,但顶不住圣诞树界实在太卷了,已经有诸多大佬绘制出各种奇思妙想的圣诞树,非常的好看,非常的炫酷。例如:


image.png


所以小包准备另辟蹊径,脱离树卷界,来实现一些圣诞的周边,比如雪人,麋鹿,以及给大家送上精心准备的糖果和小包的祝福语。本文核心是祝福,祝福大家开开心心、快快乐乐,高举不卷大旗,我辈义不容辞!


雪人


雪人主要由三部分组成: 树、雪人、雪花。


树是由简单三角形和矩形实现的,实现起来比较简单。


雪人也是由简单的图形构成的,但具体实现还是有几分趣味和可爱的,比如雪人的嘴唇其实就是字母 C 配合 -90deg 的旋转实现,雪人的小手配合 :before/:after 伪类实现。


雪花的实现没有借助 JS ,使用 animationinfinite 属性实现。


静态效果图


image.png

麋鹿


小包本来想模仿画一下麋鹿,但发现属实没有这本事啊,不止画不出来,连麋鹿都联想不出来💔。


麋鹿象征着吉祥,圣诞周边麋鹿可是必需品啊。因此小包找到一些巨佬绘制的麋鹿,送给大佬们,希望圣诞节那天,七彩麋鹿会拉着圣诞老人满足你所有的愿望。


麋鹿与圣诞老人


示例说明:三只麋鹿拉着圣诞老人在雪花中奔跑

示例来源: Merry Christmas


Gif 动态效果图


image.png

可爱麋鹿


示例说明:一只可可爱爱的小麋鹿

示例来源: the red-nosed reindeer


静态效果图


image.png

呆呆麋鹿


示例说明:一只呆呆萌萌的小麋鹿

示例来源: CSS Rudolph


静态效果图


image.png

炫酷麋鹿


示例说明:基于SVG实现的炫酷麋鹿

示例来源: crazyLowPolyDeer


Gif 动态效果图


image.png

糖果


糖果是小包在文字粒子的基础上实现的,图片选取了一张小包特别喜欢的,糖果比较多的图片,通过粒子组装完成。


实现思路


图片例子与文字粒子实现大同小异,核心在于副画布由绘制文字修改为绘制图片,主要难点在于处理图片,一方面图片存在跨域问题,需要设置 image.crossOrigin = "Anonymous" 属性;另一方面,图片加载是个异步过程,因此使用 Promise 进行异步处理。


接下来的流程与文字粒子相同: 提取像素,根据像素绘制粒子,设计粒子的运动函数,生成最后的动画即可。


// 初始化副画布,并绘制图片
function initCanvas(ctx, { width, height }) {
    var image = new Image();
    image.src = "candy.jfif";
    image.crossOrigin = "Anonymous";
    return new Promise((res) => {
        image.onload = function () {
            ctx.drawImage(image, 0, 0, width, height);
            //将图片按像素写入画布
            res();
        };
    });
}
复制代码


动图加载过程中,大家可以猜猜小包给大家准备了几块糖啊?


Gif 动态效果图


image.png

祝福语


接下来送上小包亲手写的祝福,虽说字写得一般啊,但情谊十足啊。


image.png

拉个票:明天就是年度优秀创作者的评选了,有喜欢小包的别忘了给小包投一票啊


源码仓库


源码地址: 圣诞周边


如果感觉有帮助的话,别忘了给小包点个 ⭐ 。




相关文章
|
前端开发 JavaScript
HTML+CSS+JAVASCRIPT实现——情人节表白情书
本文主要介绍如何使用HTML三件套来实现制作一封情人节表白情书,富含情谊与爱,打动女生的心灵
796 2
HTML+CSS+JAVASCRIPT实现——情人节表白情书
|
算法 Android开发 C++
LeetCode 周赛上分之旅 #49 再探内向基环树
学习数据结构与算法的关键在于掌握问题背后的算法思维框架,你的思考越抽象,它能覆盖的问题域就越广,理解难度也更复杂。在这个专栏里,小彭与你分享每场 LeetCode 周赛的解题报告,一起体会上分之旅。
94 1
|
人工智能 文字识别 算法
穿颜色成对的袜子,追最新的剧:这群coder正帮视障者移走身上的大山
穿颜色成对的袜子,追最新的剧:这群coder正帮视障者移走身上的大山
118 0
|
程序员 C++
谁说程序员不浪漫——给女友放个烟花,安排!安排!
谁说程序员不浪漫——给女友放个烟花,安排!安排!
165 0
谁说程序员不浪漫——给女友放个烟花,安排!安排!
漫画:有趣的扔鸡蛋问题
扔鸡蛋问题,有2个鸡蛋,从100层楼上往下扔,以此来测试鸡蛋的硬度。比如鸡蛋在第9层没有摔碎,在第10层摔碎了,那么鸡蛋不会摔碎的临界点就是9层。
253 0
漫画:有趣的扔鸡蛋问题
|
Java 新能源
用“鸟屎”调侃同行,石墨烯真的是加个“屎”都能发论文?
用“鸟屎”调侃同行,石墨烯真的是加个“屎”都能发论文?
279 0