canvas绘制流星(使用canvas实现黑客帝国数字雨效果)
类别:Web前端 浏览量:1073
时间:2021-10-11 00:33:45 canvas绘制流星
使用canvas实现黑客帝国数字雨效果使用canvas实现黑客帝国数字雨
效果图:
代码:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <style> body { margin: 0; padding: 0; } canvas { width: 100%; height: 100%; } </style> </head> <body> <canvas style="background:#111"></canvas> <script> //获取画布对象 var can = document.querySelector("canvas"); //获取画布的上下文 var ctx = can.getContext("2d"); //设置canvas的宽度和高度 can.width = window.innerWidth; can.height = window.innerHeight; //每个文字的字体大小 var fontSize = 16; //计算列 var colunms = Math.floor(window.innerWidth / fontSize); //记录每列文字的y轴坐标 var arr = []; //给每一个文字初始化一个起始点的位置 for (var i = 0; i < colunms; i++) { arr.push(0); } //运动的文字 var str = "you are a silly"; //绘画的函数 function draw() { //布满全屏的黑色遮罩层 ctx.fillStyle = "rgba(0,0,0,0.05)"; ctx.fillRect(0, 0, window.innerWidth, window.innerHeight); //给字体设置样式 ctx.font = "700 " + fontSize + "px 微软雅黑"; //给字体添加颜色 ctx.fillStyle = "#00cc33"; //写入画布中 for (var i = 0; i < colunms; i++) { var index = Math.floor(Math.random() * str.length); var x = i * fontSize; var y = arr[i] * fontSize; ctx.fillText(str[index], x, y); //如果文字的Y轴坐标大于画布的高度,1/100*colunms概率将该文字的Y轴坐标重置为0 if (y >= can.height && Math.random() > 0.99) { arr[i] = 0; } //文字Y轴坐标+1 arr[i]++; } } draw(); setInterval(draw, 30); </script> </body> </html>
总结
以上所述是小编给大家介绍的使用canvas实现黑客帝国数字雨效果,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对开心学习网网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
您可能感兴趣
- canvas里面图片如何获取(canvas生成带二维码海报的踩坑记录)
- canvas实现滚动列表(Canvas实现贝赛尔曲线轨迹动画的示例代码)
- canvas绘制渐变图形(Canvas实现放大镜效果完整案例分析附代码)
- canvas画布多次渲染失败(深入了解canvas在移动端绘制模糊的问题解决)
- 微信小程序canvas缩放(微信小程序之html5 canvas绘图并保存到系统相册)
- canvas设置点击(Canvas高级路径操作之拖拽对象的实现)
- canvas跟随鼠标绘制(如何在Canvas上的图形/图像绑定事件监听的实现)
- canvas图片裁剪插件(浅析图片上传及canvas压缩的流程)
- html5 canvas 特效(JavaScript canvas实现流星特效)
- canvas怎么压缩图片(使用canvas压缩图片大小的方法示例)
- canvas 缩放后字发虚(canvas 绘图时位置偏离的问题解决)
- canvas宽高技巧(canvas画图被放大且模糊的解决方法)
- 使用canvas的好坏(关于canvas绘制模糊问题的解决方法)
- 用html5的canvas绘制剪裁图像(Html5 canvas画图白板踩坑)
- canvas两种绘图方法(canvas 基础之图像处理的使用)
- html5 canvas touch(html5 canvas手势解锁源码分享)
- 刘韬涛丁子贺小品《根治低头族》台词剧本(刘韬涛丁子贺小品根治低头族台词剧本)
- 看完《夺冠》,黄渤的演技我实在夸不起来,彭昱畅反令人惊喜(黄渤的演技我实在夸不起来)
- 黄渤泪目 我的痴呆父亲,我内心永远的痛(黄渤泪目我的痴呆父亲)
- 蒜苔和鱿鱼尾巴一起炒,味道特别棒,又脆又嫩,有滋又有味(蒜苔和鱿鱼尾巴一起炒)
- 鱿鱼炒蒜苔不是黑暗料理,这样做清香扑鼻,鲜美脆嫩,开胃又下饭(鱿鱼炒蒜苔不是黑暗料理)
- 蒜苔炒鱿鱼(蒜苔炒鱿鱼)
热门推荐
- ubuntu安装cmake(详解ubuntu安装CMake的几种方式)
- css3项目列表属性(像素密度与CSS3的viewport在移动端Web响应式布局中的运用)
- 宝塔面板服务器设置(使用宝塔面板做负载均衡时遇到的问题和解决办法)
- python中内存管理机制(Python中整数的缓存机制讲解)
- sqlserver分组查询(sql server如何利用开窗函数over进行分组统计)
- 织梦平台如何更新备案号(详解织梦dedecms短信验证码功能阿里短信)
- amaze算法(amazeui 验证按钮扩展的实现)
- 腾讯云轻量服务器怎么降低延迟(腾讯云星星海SA2云服务器配置规格性能实际评测)
- 判断图片是否加载完成
- docker 清除none镜像(删除docker images中为none的镜像操作)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9