一、前言

七夕节是爱情的节日,是一个以“牛郎织女”民间传说为载体,以祈福、乞巧、爱情为主题,以女性为主体的综合性节日。

虽然说今年的七夕节还早,但身为程序员,怎么能不提前给女朋友送一个炫酷的祝福呢,又省钱还浪漫,下面为大家推荐一款大神写的Github的项目:

Github链接:繁星祝福

二、效果展示

1.第一部分


进入首页之后就会出现周边的星星逐渐汇聚,最后形成一个文字和爱心祝福,背景板是一个解析之后的动态图片,流星按照一定的轨迹和时间滑向天空。

2.第二部分

使用鼠标点击屏幕,触发事件,文字会随着代码提前编写好的文字逐渐显现出来。

3.第三部分

因为制作动态图文件过大,就分成了两部分,和上面的流程本质上差不多。

三、代码讲解

1.初始化

 const FRAME_RATE = 60const PARTICLE_NUM = 2000//粒子数量const RADIUS = Math.PI * 2//半径范围const CANVASWIDTH = 500//宽度const CANVASHEIGHT = 150//高度const CANVASID = 'canvas'//调用幕布初始化let texts = ['我的宝❤', '抬头看看', '星空', '对着', '流星', '许下', '永不分离的','心愿', '而你', '就是', '我生命中', '最亮的','星星', 'I LOVE YOU']//文本框,写下自己想要的祝福语
let canvas,//幕布初始化具体参数ctx,particles = [],quiver = true,text = texts[0],textIndex = 0,textSize = 70

2.星星运动

fadeIn () {//汇聚this.fadingIn = this.opacity > this.opacityTresh ? false : trueif (this.fadingIn) {this.opacity += this.fadeInRate}else {this.opacity = 1}}fadeOut () {//逃离this.fadingOut = this.opacity < 0 ? false : trueif (this.fadingOut) {this.opacity -= this.fadeOutRateif (this.opacity < 0) {this.opacity = 0}}else {this.opacity = 0}}

3.调用文字

class Particle {constructor (canvas) {let spread = canvas.heightlet size = Math.random() * 1.2// 速度this.delta = 0.06// 现在的位置this.x = 0this.y = 0// 上次的位置this.px = Math.random() * canvas.widththis.py = (canvas.height * 0.5) + ((Math.random() - 0.5) * spread)// 记录点最初的位置this.mx = this.pxthis.my = this.py// 点的大小this.size = size// this.origSize = size// 是否用来显示字this.inText = false// 透明度相关this.opacity = 0this.fadeInRate = 0.005this.fadeOutRate = 0.03this.opacityTresh = 0.98this.fadingOut = truethis.fadingIn = true}

4.开始绘制

 this.draw = function() {//绘制文字功能模块universe.beginPath();if (this.giant) {universe.fillStyle = 'rgba(' + giantColor + ',' + this.opacity + ')';universe.arc(this.x, this.y, 2, 0, 2 * Math.PI, false);} else if (this.comet) {universe.fillStyle = 'rgba(' + cometColor + ',' + this.opacity + ')';universe.arc(this.x, this.y, 1.5, 0, 2 * Math.PI, false);//for循环for (var i = 0; i < 30; i++) {universe.fillStyle = 'rgba(' + cometColor + ',' + (this.opacity - (this.opacity / 20) * i) + ')';universe.rect(this.x - this.dx / 4 * i, this.y - this.dy / 4 * i - 2, 2, 2);universe.fill();}} else {universe.fillStyle = 'rgba(' + starColor + ',' + this.opacity + ')';universe.rect(this.x, this.y, this.r, this.r);}universe.closePath();//关闭路径universe.fill();//填充};

5.CSS样式

body {//主题样式display: -webkit-box;display: -webkit-flex;display: -ms-flexbox;display: flex;-webkit-box-pack: center;-webkit-justify-content: center;-ms-flex-pack: center;justify-content: center;-webkit-box-align: center;-webkit-align-items: center;-ms-flex-align: center;align-items: center;-webkit-filter: contrast(120%);filter: contrast(120%);background-color: black;//背景颜色黑色position: relative;//位置
}
.container {width: 100%;height: 99.74%;background-image: radial-gradient(2000px at 10% 130%, rgba(33, 39, 80, 1) 10%, #020409 100%);//背景图片加载}
.content {//100%显示width: 100% auto;height: 100% auto;
}
#scene {//场景height: 100%;position: absolute;left: 50%;margin-left: -768px;
}
.txt {//文本样式color: hsla(0, 0%, 0%, 0);//颜色text-shadow: #fff 0 0 10px;//文本展示transition: text-shadow 2s cubic-bezier(0, 1, 0, 1);
}
#canvas{//幕布margin: 0 auto;
}

四、Github Pages

Github Pages为每一个账户提供了专属域名,可以把自己提交到仓库的项目生成一个可执行站点,获取这个项目的源码之后,部署到Github Pages,下面是具体步骤。

1.前往GitHub并创建一个名为username .github.io 的新公共存储库,其中username是你自己在Github的用户名称(用户名称一定要正确,否则会出错)。

2.利用Git客户端或者手动提交这个情人节项目的源文件,等待一段时间之后,就可以通过username .github.io这个网站访问页面了。

漫天繁星构成文字情话相关推荐

  1. turtle库使用——漫天繁星+万花筒绘制

    这里需要绘图窗口,关于绘图窗口的一些使用方法: 1.漫天繁星 -- 先写一个函数:在蓝色天空下绘制一颗星星,然后利用这个函数再加上随机函数就可以在天空绘制满满的星星了. # 在蓝色天空下绘制漫天繁星 ...

  2. 用Canvas画漫天繁星吧~

    初学Canvas写了一个在一片区域内随机产生星星并且不断闪动的效果.具体实现如下所示. 首先创建一个canvas让其适配屏幕的大小. h = screen.height - 200;w = scree ...

  3. 推动“海纳众创”,打造“漫天繁星”:中国联通视频彩铃全国创意创新大赛开赛仪式顺利举行!

    9月1日, "海纳·星空"中国联通视频彩铃全国创意创新大赛在北京举行了开赛仪式,仪式围绕"海纳计划"和"星空计划"展开,旨在开放能力合作,赋 ...

  4. 自动发送生日祝福短信 php,抖音很火的文字情话 2019抖音最火自己生日祝福语

    1.没有人真的想要一个人,谁也不想有一个人可以糟蹋自己的天堂. 2.人之所以痛苦,是因为追求错了东西. 3.总有一个人,会让你忘记别人所有的好,他却看不到你的好. 4.如果不是真的,请不要对我太好,我 ...

  5. 那一份无怨亦无悔的真情实意

    青春染指流年,苍老一段时光. 岁月尘陌若烟,落寞一季忧伤. 记忆随风飘零,破碎一段记忆. 烟花落入尘世,凉薄一份安存. --题记 [一]想你的心,永不宁静 流年似水,浮生若梦,倦卧红尘,想你的心情永不 ...

  6. 驭势吴甘沙:我的根本利益|Xtecher人物特稿

    吴甘沙,驭势科技CEO.前英特尔中国研究院院长.英特尔中国研究院的第一位"首席工程师",第一位非美籍华人院长. 为了写这篇文章,我找来3月20日驭势科技的公众号发刊文<驭势未 ...

  7. 隐私泄露下的数据暗网,分类标签中的爱恨一生

    自打人类进化中出现了商业的那一刻起,营销,就成为了人类钻研的核心. 交易的本质是价值交换,但世界上不存在永远对等的价值,所以交换中存在套利空间,这些套利空间,成就了商业的价值. 逐利是人的本性,这是刻 ...

  8. Tokyo Tyrant

    [文章作者:张宴 本文版本:v1.4 最后修改:2010.06.11 转载请注明原文链接: http://blog.s135.com/read.php/362/] Tokyo Cabinet 是日本人 ...

  9. 【Python】春节炫酷烟花秀

    [本文首发于公众号:阿黎逸阳的代码] ​一年一度的春节来啦,正值阖家团圆.万家灯火辉煌之际,阿黎逸阳带着烟花秀祝大家新年快乐!牛年大吉!    一.绘制成品 1.迪士尼烟花秀    2.两个人的新年 ...

  10. 十大鲜为人知的恒星真相:黑洞不会吸入物质

    仙女座大星系,在秋天的夜晚,当天气非常晴好时你可以用肉眼看到它.这个星系位于250万光年之外,几乎和我们的银河系一样大 新浪科技讯 北京时间11月1日消息,据国外媒体报道,你晚上还会抬头看看夜空吗?随 ...

最新文章

  1. python创建一个txt文件-python中如何创建一个txt文件
  2. 输出字母沙漏+对称字符串
  3. 软件工程开篇自我介绍
  4. 微服务框架---搭建 go-micro环境
  5. [Linux网络编程]ARP简单实例
  6. 前端怎么自我介绍_未雨绸缪,小米前端实习面经
  7. debian软raid
  8. css设置各种中文字体如雅黑、黑体、宋体、楷体等
  9. 互亿无线python接口
  10. 判断是手机端/pc端
  11. r语言跟python哪个适合数据分析_R语言 vs Python对比:数据分析哪家强?
  12. c语言编译器安装到c盘吗,PE安装到C盘的详细教程
  13. 格式工厂kux格式怎么转换成mp4
  14. 全球及中国图书出版发行业营销策略与运行前景分析报告2022版
  15. Huggingface Transformers 安装报错 ImportError: /lib64/libc.so.6: version `GLIBC_2.18‘ not found
  16. 02.windows转mac日记——操作习惯
  17. Ubuntu20安装wxPython
  18. C语言编程工具Dev C++的安装教程
  19. C++控制输出的字体颜色
  20. 开发必备神器,你值得拥有!

热门文章

  1. ARC120F Wine Thief (组合数学)
  2. 【第42期】游戏策划:如何让游戏帮助孩子成长?
  3. 面试官都叫好的Synchronized底层实现,这工资开多少一个月?
  4. Django搭建个人博客之编写博客文章的Model模型
  5. CTF---Web入门第十六题 天下武功唯快不破
  6. python操作 docx
  7. 怎么获取url_Requests库(十二)实战获取今日头条24小时热文
  8. 卡拉赞服务器延迟,卡拉赞开荒详细功略(前门)
  9. Android 状态栏背景颜色修改与状态栏字体颜色修改
  10. STM32F103_study46_The punctual atoms(STM32 The location of all interrupt service functions )