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 flash激活
Oct 19 Javascript
任意位置显示html菜单
Feb 01 Javascript
Javascript的getYear、getFullYear、getUTCFullYear异同分享
Nov 30 Javascript
仿新浪微博登陆邮箱提示效果的js代码
Aug 02 Javascript
javascript操作css属性
Dec 30 Javascript
jQuery事件绑定用法详解
Sep 08 Javascript
微信小程序 video组件详解
Oct 25 Javascript
JavaScript制作简单的框选图表
May 15 Javascript
javascript按钮禁用和启用的效果实例代码
Oct 29 Javascript
jquery 遍历hash操作示例【基于ajax交互】
Oct 12 jQuery
react 不用插件实现数字滚动的效果示例
Apr 14 Javascript
JavaScript严格模式不支持八进制的问题讲解
Nov 07 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中spl_autoload_register()和__autoload()区别分析
2014/05/10 PHP
php遍历树的常用方法汇总
2015/06/18 PHP
Yii2使用dropdownlist实现地区三级联动功能的方法
2016/07/18 PHP
php生成随机数/生成随机字符串的方法小结【5种方法】
2020/05/27 PHP
js限制文本框为整数和货币的函数代码
2010/10/13 Javascript
关于jquery ajax 调用带参数的webservice返回XML数据一个小细节
2012/07/31 Javascript
JavaScript使用shift方法移除素组第一个元素实例分析
2015/04/06 Javascript
jquery简单实现幻灯片的方法
2015/08/03 Javascript
javascript基础语法学习笔记
2016/01/04 Javascript
值得分享的JavaScript实现图片轮播组件
2016/11/21 Javascript
vue引入jq插件的实例讲解
2017/09/12 Javascript
基于JavaScript实现五子棋游戏
2020/08/26 Javascript
vue 全选与反选的实现方法(无Bug 新手看过来)
2018/02/09 Javascript
Angularjs Ng_repeat中实现复选框选中并显示不同的样式方法
2018/09/12 Javascript
node和vue实现商城用户地址模块
2018/12/05 Javascript
微信小程序实现用table显示数据库反馈的多条数据功能示例
2019/05/07 Javascript
基于vue-cli搭建多模块且各模块独立打包的项目
2019/06/12 Javascript
[11:57]《一刀刀一天》第十七期:TI中国军团加油!
2014/05/26 DOTA
python的迭代器与生成器实例详解
2014/07/16 Python
Python删除windows垃圾文件的方法
2015/07/14 Python
Python使用jsonpath-rw模块处理Json对象操作示例
2018/07/31 Python
Python如何爬取微信公众号文章和评论(基于 Fiddler 抓包分析)
2019/06/28 Python
flask框架自定义url转换器操作详解
2020/01/25 Python
python代数式括号有效性检验示例代码
2020/10/04 Python
基于 HTML5 WebGL 实现的垃圾分类系统
2019/10/08 HTML / CSS
前端H5 Video常见使用场景简介
2020/08/21 HTML / CSS
英国最大的独立家具零售商:Furniture Village
2016/09/06 全球购物
eBay意大利购物网站:eBay.it
2019/09/04 全球购物
宣传策划类求职信范文
2014/01/31 职场文书
仓管岗位职责范本
2014/02/08 职场文书
篝火晚会主持词
2014/03/25 职场文书
教学改革实施方案
2014/03/31 职场文书
《闻一多先生的说和做》教学反思
2014/04/28 职场文书
通知函格式范文
2015/04/27 职场文书
PostgreSQL通过oracle_fdw访问Oracle数据的实现步骤
2021/05/21 PostgreSQL
详细聊聊Oracle表碎片对性能有多大的影响
2022/03/19 Oracle