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 多浏览器分别判断代码
Apr 01 Javascript
javascript hasFocus使用实例
Jun 29 Javascript
使用jQuery全局事件ajaxStart为特定请求实现提示效果的代码
Dec 30 Javascript
javascript中DOM复选框选择用法实例
May 14 Javascript
javascript+html5实现绘制圆环的方法
Jul 28 Javascript
JQuery入门基础小实例(1)
Sep 17 Javascript
jQuery实现ajax的叠加和停止(终止ajax请求)
Aug 08 Javascript
Vue2单一事件管理组件通信
May 09 Javascript
详解AngularJS2 Http服务
Jun 26 Javascript
jQuery Datatable 多个查询条件自定义提交事件(推荐)
Aug 24 jQuery
Vue面试题及Vue知识点整理
Oct 07 Javascript
Vue CLI3移动端适配(px2rem或postcss-plugin-px2rem)
Apr 27 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
环境会对咖啡种植有什么影响
2021/03/03 咖啡文化
snoopy 强大的PHP采集类使用实例代码
2010/12/09 PHP
基于Zookeeper的使用详解
2013/05/02 PHP
php实现mysql数据库操作类分享
2014/02/14 PHP
PHP模板引擎Smarty的缓存使用总结
2014/04/24 PHP
PHP页面实现定时跳转的方法
2014/10/31 PHP
php.ini中的request_order推荐设置
2015/05/10 PHP
PHP程序中的文件锁、互斥锁、读写锁使用技巧解析
2016/03/21 PHP
php编译安装php-amq扩展简明教程
2016/06/25 PHP
PHP制作登录异常ip检测功能的实例代码
2016/11/16 PHP
JavaScript Prototype对象
2009/01/07 Javascript
js 表单验证方法(实用)
2009/04/28 Javascript
Jquery 最近浏览过的商品的功能实现代码
2010/05/14 Javascript
jQuery 获取浏览器所在的IP地址的小例子
2013/11/08 Javascript
详解nodejs 文本操作模块-fs模块(三)
2016/12/22 NodeJs
js获取元素的偏移量offset简单方法(必看)
2017/07/05 Javascript
通过封装scroll.js 获取滚动条的值
2018/07/13 Javascript
Vue.js组件间通信方式总结【推荐】
2018/11/23 Javascript
微信小程序自定义带价格显示日历效果
2018/12/29 Javascript
深入解析koa之中间件流程控制
2019/06/17 Javascript
JS数组及对象遍历方法代码汇总
2020/06/16 Javascript
python list使用示例 list中找连续的数字
2014/01/27 Python
python中列表元素连接方法join用法实例
2015/04/07 Python
Python利用Beautiful Soup模块修改内容方法示例
2017/03/27 Python
PyQt5每天必学之工具提示功能
2018/04/19 Python
详解python3中的真值测试
2018/08/13 Python
学Python 3的理由和必要性
2019/11/19 Python
scrapy-splash简单使用详解
2021/02/21 Python
详解HTML5将footer置于页面最底部的方法(CSS+JS)
2018/10/11 HTML / CSS
澳大利亚家具和家居用品购物网站:Zanui
2018/12/29 全球购物
Python如何实现单例模式
2016/06/03 面试题
写一个方法,输入一个文件名和一个字符串,统计这个字符串在这个文件中出现的次数
2016/04/13 面试题
机关作风整顿个人整改措施2014
2014/09/17 职场文书
医生个人年终总结
2015/02/28 职场文书
检讨书模板大全
2015/05/07 职场文书
致我们终将逝去的青春观后感
2015/06/10 职场文书