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 相关文章推荐
js事件绑定快捷键以ctrl+k为例
Sep 30 Javascript
微信小程序 Windows2008 R2服务器配置TLS1.2方法
Dec 05 Javascript
node.js发送邮件email的方法详解
Jan 06 Javascript
关于JavaScript中的this指向问题总结篇
Jul 23 Javascript
Angular 5.0 来了! 有这些大变化
Nov 15 Javascript
vue+webpack实现异步加载三种用法示例详解
Apr 24 Javascript
jquery简单实现纵向的无缝滚动代码实例
Apr 01 jQuery
微信小程序 image组件遇到的问题
May 28 Javascript
vue+element表格导出为Excel文件
Sep 26 Javascript
javascript实现函数柯里化与反柯里化过程解析
Oct 08 Javascript
vue-cli 为项目设置别名的方法
Oct 15 Javascript
node.js中 redis 的安装和基本操作示例
Feb 10 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
js 获取中文拼音,Select自动匹配字母获取值的代码
2009/09/23 Javascript
遍历jquery对象的代码分享
2011/11/02 Javascript
Jquery跳到页面指定位置的方法
2014/05/12 Javascript
jQuery常用操作方法及常用函数总结
2014/06/19 Javascript
jquery实现TAB选项卡鼠标经过带延迟效果的方法
2015/07/27 Javascript
js模仿java的Map集合详解
2016/01/06 Javascript
基于HTML+CSS+JS实现增加删除修改tab导航特效代码
2016/08/05 Javascript
Json对象和字符串互相转换json数据拼接和JSON使用方式详细介绍(小结)
2016/10/25 Javascript
Angular的MVC和作用域
2016/12/26 Javascript
JS数组去重(4种方法)
2017/03/27 Javascript
JS自定义函数实现时间戳转换成date的方法示例
2017/08/27 Javascript
jQuery UI 实例讲解 - 日期选择器(Datepicker)
2017/09/18 jQuery
Vuejs中使用markdown服务器端渲染的示例
2017/11/22 Javascript
vue-cli3.0配置及使用注意事项详解
2018/09/05 Javascript
vue使用pdfjs显示PDF可复制的实现方法
2018/12/14 Javascript
Vue项目中使用jquery的简单方法
2019/05/16 jQuery
layui动态渲染生成左侧3级菜单的方法(根据后台返回数据)
2019/09/23 Javascript
Python常用随机数与随机字符串方法实例
2015/04/09 Python
Python执行时间的计算方法小结
2017/03/17 Python
Python实现一个服务器监听多个客户端请求
2018/04/12 Python
Django分页查询并返回jsons数据(中文乱码解决方法)
2018/08/02 Python
python中图像通道分离与合并实例
2020/01/17 Python
pycharm2020.2 配置使用的方法详解
2020/09/16 Python
CSS3点击按钮实现背景渐变动画效果
2016/10/19 HTML / CSS
Parfumdreams芬兰:购买香水和化妆品
2021/02/13 全球购物
护理职业应聘自荐书
2013/09/29 职场文书
应届毕业生应聘自荐信
2013/12/07 职场文书
《中华少年》教学反思
2014/02/15 职场文书
中级会计职业生涯规划书
2014/03/01 职场文书
小学庆六一活动总结
2014/08/28 职场文书
社会实践活动报告
2015/02/05 职场文书
2015个人半年总结范文
2015/03/09 职场文书
张丽莉事迹观后感
2015/06/16 职场文书
nginx限制并发连接请求数的方法
2021/04/01 Servers
微信小程序实现录音Record功能
2021/05/09 Javascript
redis实现共同好友的思路详解
2021/05/26 Redis