使用canvas实现黑客帝国数字雨效果


Posted in HTML / CSS onJanuary 02, 2020

使用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实现黑客帝国数字雨效果,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

HTML / CSS 相关文章推荐
css3个性化字体_动力节点Java学院整理
Jul 12 HTML / CSS
CSS3使用border-radius属性制作圆角
Dec 22 HTML / CSS
纯css3实现照片墙效果
Dec 26 HTML / CSS
CSS3实现闪烁动画效果的方法
Feb 09 HTML / CSS
CSS+jQuery+PHP+MySQL实现的在线答题功能
Apr 25 HTML / CSS
CSS3中的content属性使用示例
Jul 20 HTML / CSS
通过CSS3的object-fit来调整图片适配尺寸的技巧简介
Feb 27 HTML / CSS
canvas实现圆绘制的示例代码
Sep 11 HTML / CSS
HTML5新增的表单元素和属性实例解析
Jul 07 HTML / CSS
HTML5拖拽的简单实例
May 30 HTML / CSS
HTML5操作WebSQL数据库的实例代码
Aug 26 HTML / CSS
html5自动播放mov格式视频的实例代码
Jan 14 HTML / CSS
HTML5中外部浏览器唤起微信分享
Jan 02 #HTML / CSS
Html5获取高德地图定位天气的方法
Dec 26 #HTML / CSS
鼠标滚轮事件和Mac触控板双指事件
Dec 23 #HTML / CSS
HTML5 Canvas 实现K线图的示例代码
Dec 23 #HTML / CSS
html5利用canvas实现颜色容差抠图功能
Dec 23 #HTML / CSS
HTML5 客户端数据库简易使用:IndexedDB
Dec 19 #HTML / CSS
吃透移动端 Html5 响应式布局
Dec 16 #HTML / CSS
You might like
实现“上一页”和“下一页按钮
2006/10/09 PHP
PHP CLI模式下的多进程应用分析
2013/06/03 PHP
PHP中多维数组的foreach遍历示例
2014/06/13 PHP
ThinkPHP跳转页success及error模板实例教程
2014/07/17 PHP
Yii框架防止sql注入,xss攻击与csrf攻击的方法
2016/10/18 PHP
javascript 面向对象 function类
2010/05/13 Javascript
jQuery ajax BUG:object doesn't support this property or method
2010/07/06 Javascript
轻松创建nodejs服务器(2):nodejs服务器的构成分析
2014/12/18 NodeJs
jquery实现公告翻滚效果
2015/02/27 Javascript
值得分享的轻量级Bootstrap Table表格插件
2016/05/30 Javascript
JS与Ajax Get和Post在使用上的区别实例详解
2016/06/08 Javascript
JS中Json数据的处理和解析JSON数据的方法详解
2016/06/29 Javascript
功能强大的Bootstrap组件(结合js)
2016/08/03 Javascript
js模糊查询实例分享
2016/12/26 Javascript
Vue keep-alive实践总结(推荐)
2017/08/31 Javascript
Vue.js+cube-ui(Scroll组件)实现类似头条效果的横向滚动导航条
2019/06/24 Javascript
vue中如何实现后台管理系统的权限控制的方法步骤
2019/09/05 Javascript
layui table去掉右侧滑动条的实现方法
2019/09/05 Javascript
three.js 实现露珠滴落动画效果的示例代码
2021/03/01 Javascript
Python之reload流程实例代码解析
2018/01/29 Python
Python中asyncio模块的深入讲解
2019/06/10 Python
详解Django将秒转换为xx天xx时xx分
2019/09/27 Python
Python3的unicode编码转换成中文的问题及解决方案
2019/12/10 Python
10张动图学会python循环与递归问题
2021/02/06 Python
canvas三角函数模拟水波效果的示例代码
2018/07/03 HTML / CSS
为什么Runtime.exec(“ls”)没有任何输出?
2014/10/03 面试题
公司年会抽奖活动主持词
2014/03/31 职场文书
学校节能减排方案
2014/06/13 职场文书
个人工作表现自我评价
2015/03/06 职场文书
会计出纳岗位职责
2015/03/31 职场文书
2015年安全员工作总结范文
2015/04/22 职场文书
国庆阅兵观后感
2015/06/15 职场文书
家庭聚会祝酒词
2015/08/11 职场文书
2016应届毕业生实习评语
2015/12/01 职场文书
2016计划生育先进个人事迹材料
2016/02/29 职场文书
深入理解CSS 中 transform matrix矩阵变换问题
2021/08/30 HTML / CSS