酷站(www.ku0.com)-致力于为互联网从业者提供动力!

热门关键词:  企业  as  baidu  c4rp3nt3r  美女
【ECS精选特惠】新用户上云低至1折起
百度资源

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

来源:互联网搜集 作者:秩名 人气: 发布时间:2020-01-05
本篇文章主要介绍了使用canvas实现黑客帝国数字雨效果介绍,对大家的学习或者工作具有一定的参考学习价值,感兴趣的小伙伴们可以参考一下,也感谢大家对酷站(ku0.com)的支持。

使用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>

版权声明:本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 959677720#qq.cn(#换@) 举报,一经查实,本站将立刻删除。
原文链接:https://www.jb51.net/html5/708580.html

相关文章

  • html5拖拽应用记录及注意点的介绍

    html5拖拽应用记录及注意点的介绍

    下面通过代码给大家介绍html5拖拽应用记录,具体代码如下所示: e.dataTransfer.setData(a,设置的值);e.dataTransfer.getData(a);function drop(e){ !--尝试console.log(e),这里能拿到好多你用得到的api-- e.dataTransfer.setData(a, e.t......
    06-02
  • 详解Html5 canvas画图白板踩坑

    详解Html5 canvas画图白板踩坑

    最近接手了一个小型的H5,最主要的功能大概就是拍照上传和canvas画板了。 主要是记录一下自己菜到像傻子一样的技术。 1、canvas画板隔空打牛!画布越往上部分错位距离越小,越往下距离越大。 2、图片上传!白板涂鸦的内容是以base64的形......
    06-02
  • video实现有声音自动播放的教程

    video实现有声音自动播放的教程

    video实现自动播放有声音 需求:老板见人家可以的,我们的也要可以!!! 前端:自动播放,简单... 要实现:鼠标移入视频播放同时有声音,移出让你暂停,,,,, 问题集合 1- 自动播放实现没有声音, 2- 怎么实现有声音自动播放? 3- 鼠......
    05-20
  • video.js支持m3u8格式直播的实现教程

    video.js支持m3u8格式直播的实现教程

    为什么要使用video.js? 1. PC端浏览器并不支持video直接播放m3u8格式的视频 2. 手机端各式各样的浏览器定制的video界面风格不统一,直接写原生的js控制视频兼容性较差 3. video.js解决以上两个问题,还可以有各种视频状态接口暴露,优化......
    05-20
  • 详解HTML5 HTMLCollection和NodeList的区别

    详解HTML5 HTMLCollection和NodeList的区别

    获取 HTMLCollection 对象 getElementsByTagName() 方法返HTMLCollection对象。 HTMLCollection 对象类似包含 HTML 元素的一个数组。 注意: HTMLCollection 不是一个数组! HTMLCollection 看起来可能是一个数组,但其实不是。 你可以像......
    05-01
  • canvas绘制太极图的实现

    canvas绘制太极图的实现

    看到了很多人写的太极图案,自己也来搞一下,今天就来介绍一下 css样式代码 .animation{ width: 800px; height: 800px; border: 1px solid #000;}#canvas{ animation: rotate 6s linear infinite; }/* 给太极图设置旋转动画 */@keyframes......
    05-01
  • html5中使用hotcss.js实现手机端自适配

    html5中使用hotcss.js实现手机端自适配

    Html5页面在手机端做自适配是很常见的技术需求,下面介绍下在html页面使用hotcss 简介 使用动态的HTML根字体大小和动态的viewport scale。 遵循视觉一致性原则。在不同大小的屏幕和不同的设备像素密度下,让你的页面看起来是一样的。 1.......
    04-25
  • 详解HTML中meta标签及Keywords

    详解HTML中meta标签及Keywords

    关键字 meta(标签)及 Keywords(关键词),曾经在网页中很重要的,但现在已经被很多搜索引擎完全忽略。但是,如果加上这个标签也对网页的综合表现没有坏处,不过,如果使用不恰当的话,对网页非但没有好处,还有欺诈的嫌疑。 键字标签K......
    04-21
  • 移动端h5页面根据屏幕适配的四种方案总结!

    移动端h5页面根据屏幕适配的四种方案总结!

    方法一:引入淘宝开源的可伸缩布局方案 引入淘宝开源的可伸缩布局方案: https://github.com/amfe/lib-flexible (此处可点击) 淘宝的其实也和viewport的有点像,但是它主要是根据设备设备像素比设置scale的值,保持视口device-width始......
    04-21
  • html5 canvas实现光线沿不规则路径运动的代码

    html5 canvas实现光线沿不规则路径运动的代码

    svg让动画沿着不规则路径运动 查阅svg文档后发现,svg动画运动有两种实现方式,且都非常简单,但对于100%实现设计师给出的效果有很大的距离 使用offset-path偏移路径和offset-roate偏移角度让元素沿着不规则路径走 !DOCTYPE html html he......
    04-21

最新更新