JavaScript canvas仿代码流瀑布


Posted in Javascript onFebruary 10, 2020

本文实例为大家分享了canvas仿代码流瀑布的具体代码,供大家参考,具体内容如下

JavaScript canvas仿代码流瀑布

在js部分写canvas代码,有详细注释

html部分:

一个canvas元素:

<canvas id="canvas" ></canvas>

css部分:

<style>
  *{
   padding: 0;
   margin: 0;
  }
  canvas{
   background-color: #111;
  }
  body{
   overflow: hidden;
  
  }
</style>
<script>
  var canvas = document.getElementById('canvas');
  var context = canvas.getContext('2d');
  // 获取浏览器的宽度和高度
  var w = window.innerWidth;
  var h = window.innerHeight;
  // 设置canvas的宽高
  canvas.width = w;
  canvas.height = h;
  // 每个文字的大小
  var fontSize = 16;
  // 一共可以有多少列文字
  var col = Math.floor(w / fontSize);
  // 记录每列文字的y轴坐标
  var cpy = [];
  for(var i = 0;i< col; i++)
  {
   cpy[i] = 1;
  }
  //定义文字
  var str = "Javascriphafhsdhfsfsf{}";
  // 绘制
  draw();
  setInterval(draw,30);
  function draw(){
   context.beginPath();
   // 背景填充颜色
   context.fillStyle = "rgba(0,0,0,0.05)";
   context.fillRect(0,0,w,h);
   // 设置字体大小
   context.font = fontSize +"px bold 微软雅黑 ";
   // 设置字体颜色
   context.fillStyle = "#00cc33";
   for(var i = 0; i < col;i++)
   {
    var index = Math.floor(Math.random()*str.length);
    var x = i*fontSize;
    var y = cpy[i]*fontSize;
    context.fillText(str.charAt(index),x,y);
    if(y >= h && Math.random()> 0.99)// 出现时间延迟的效果
    {
     cpy[i]=0;// 只要Math.random> 0.99 时才纵坐标从0开始写字
    }
    cpy[i]++;// 数组值加一,以便下一次写的字在下面一行
   }
  }
</script>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
索趣科技的答案
Feb 07 Javascript
基于jquery的一个图片hover的插件
Apr 24 Javascript
js实现touch移动触屏滑动事件
Apr 17 Javascript
JS函数的几种定义方式分析
Dec 17 Javascript
bootstrap的3级菜单样式,支持母版页保留打开状态实现方法
Nov 10 Javascript
任意Json转成无序列表的方法示例
Dec 09 Javascript
基于Vue2.0的分页组件
Mar 16 Javascript
JavaScript基础之this详解
Jun 04 Javascript
React应用中使用Bootstrap的方法
Aug 15 Javascript
Spring boot 和Vue开发中CORS跨域问题解决
Sep 05 Javascript
微信小程序 组件的外部样式externalClasses使用详解
Sep 06 Javascript
微信分享invalid signature签名错误踩过的坑
Apr 11 Javascript
Vue数字输入框组件使用方法详解
Feb 10 #Javascript
JavaScript canvas实现跟随鼠标事件
Feb 10 #Javascript
JavaScript实现简易聊天对话框(加滚动条)
Feb 10 #Javascript
node.js使用 http-proxy 创建代理服务器操作示例
Feb 10 #Javascript
node.js中 redis 的安装和基本操作示例
Feb 10 #Javascript
js实现登录拖拽窗口
Feb 10 #Javascript
javascript 原型与原型链的理解及应用实例分析
Feb 10 #Javascript
You might like
PHP base64+gzinflate压缩编码和解码代码
2008/10/03 PHP
奉献出一个封装的curl函数 便于调用(抓数据专用)
2013/07/22 PHP
PHP实现长轮询消息实时推送功能代码实例讲解
2021/02/26 PHP
简单的JS多重继承示例
2008/03/13 Javascript
Javascript 中介者模式实例
2009/12/16 Javascript
javascript中利用数组实现的循环队列代码
2010/01/24 Javascript
在JQuery dialog里的服务器控件 事件失效问题
2010/12/08 Javascript
详解强大的jQuery选择器之基本选择器、层次选择器
2012/02/07 Javascript
Jqgrid表格随窗口大小改变而改变的简单实例
2013/12/28 Javascript
在JavaScript的正则表达式中使用exec()方法
2015/06/16 Javascript
浅谈js基本数据类型和typeof
2016/08/09 Javascript
JS代码实现百度地图 画圆 删除标注
2016/10/12 Javascript
jQuery实现点击关注和取消功能
2017/07/03 jQuery
p5.js入门教程之平滑过渡(Easing)
2018/03/16 Javascript
Element-UI Table组件上添加列拖拽效果实现方法
2018/04/14 Javascript
Angular项目如何升级至Angular6步骤全纪录
2018/09/03 Javascript
npm scripts 使用指南详解
2018/10/08 Javascript
页面内锚点定位及跳转方法总结(推荐)
2019/04/24 Javascript
微信小程序地图绘制线段并且测量(实例代码)
2020/01/02 Javascript
Vue项目配置跨域访问和代理proxy设置方式
2020/09/08 Javascript
[04:23]DOTA2上海特锦赛小组赛第一日 TOP10精彩集锦
2016/02/27 DOTA
深入解析Python编程中super关键字的用法
2016/06/24 Python
python snownlp情感分析简易demo(分享)
2017/06/04 Python
python解析html提取数据,并生成word文档实例解析
2018/01/22 Python
浅谈Python黑帽子取代netcat
2018/02/10 Python
python pandas库中DataFrame对行和列的操作实例讲解
2018/06/09 Python
Python tkinter label 更新方法
2018/10/11 Python
Python实现爬取马云的微博功能示例
2019/02/16 Python
如何使用python传入不确定个数参数
2020/02/18 Python
python 统计list中各个元素出现的次数的几种方法
2021/02/20 Python
某科技软件测试面试题
2013/05/19 面试题
Java面试题汇总
2015/12/06 面试题
毕业自我鉴定怎么写
2014/03/25 职场文书
事业单位绩效考核实施方案
2014/03/27 职场文书
vue.js 使用原生js实现轮播图
2022/04/26 Vue.js
SpringBoot深入分析讲解监听器模式下
2022/07/15 Java/Android