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 相关文章推荐
深入了解Node.js中的一些特性
Sep 25 Javascript
详解addEventListener的三个参数之useCapture
Mar 16 Javascript
JS/Jquery判断对象为空的方法
Jun 11 Javascript
简介EasyUI datagrid editor combogrid搜索框的实现
Apr 01 Javascript
JS获取IE版本号与HTML设置IE文档模式的方法
Oct 09 Javascript
Angular.JS实现无限级的联动菜单(使用demo)
Feb 08 Javascript
vue-cli 3.x 修改dist路径的方法
Sep 19 Javascript
layui table 多行删除(id获取)的方法
Sep 12 Javascript
jquery实现商品sku多属性选择功能(商品详情页)
Dec 20 jQuery
js实现二级联动简单实例
Jan 11 Javascript
js中位数不足自动补位扩展padLeft、padRight实现代码
Apr 06 Javascript
JS+CSS实现炫酷光感效果
Sep 05 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生成缩略图示例代码分享(使用gd库实现)
2014/01/20 PHP
PHP中使用imagick生成PSD文件缩略图教程
2015/01/26 PHP
CentOS 上搭建 PHP7 开发测试环境
2017/02/26 PHP
十个迅速提升JQuery性能让你的JQuery跑得更快
2012/12/10 Javascript
Checbox的操作含已选、未选及判断代码
2013/11/07 Javascript
js获取下拉列表框中的value和text的值示例代码
2014/01/11 Javascript
Javscript调用iframe框架页面中函数的方法
2014/11/01 Javascript
Angularjs基础知识及示例汇总
2015/01/22 Javascript
Yii2使用Bootbox插件实现自定义弹窗
2015/04/02 Javascript
javascript中setTimeout使用指南
2015/07/26 Javascript
JavaScript中的原型继承基础学习教程
2016/05/06 Javascript
使用递归遍历对象获得value值的实现方法
2016/06/14 Javascript
ES6通过babel转码使用webpack使用import关键字
2016/12/13 Javascript
Node.js和Express简单入门介绍
2017/03/24 Javascript
深入理解与使用keep-alive(配合router-view缓存整个路由页面)
2018/09/25 Javascript
QRCode.js二维码生成并能长按识别
2018/10/16 Javascript
Antd中单个DatePicker限定时间输入范围操作
2020/10/29 Javascript
Vue2.x-使用防抖以及节流的示例
2021/03/02 Vue.js
[01:53]3.19 DOTA2发布会 现场精彩Coser表演
2014/03/25 DOTA
Python lambda表达式用法实例分析
2018/12/25 Python
Python 生成器,迭代,yield关键字,send()传参给yield语句操作示例
2019/10/12 Python
YUV转为jpg图像的实现
2019/12/09 Python
pandas dataframe 中的explode函数用法详解
2020/05/18 Python
Abe’s of Maine:自1979以来销售相机和电子产品
2016/11/21 全球购物
全球最大最受欢迎的旅游社区:Tripadvisor
2017/11/03 全球购物
瑞士男士时尚网上商店:Babista
2020/05/14 全球购物
四风问题个人剖析材料
2014/10/07 职场文书
大学毕业论文致谢词
2015/05/14 职场文书
撤诉申请怎么写
2015/05/19 职场文书
2015年为民办实事工作总结
2015/05/26 职场文书
《云雀的心愿》教学反思
2016/02/23 职场文书
四年级作文之说明文作文
2019/10/14 职场文书
六年级作文之家庭作文
2019/12/12 职场文书
Nginx安装完成没有生成sbin目录的解决方法
2021/03/31 Servers
Nginx配置使用详解
2022/07/07 Servers
Three.js实现雪糕地球的使用示例详解
2022/07/07 Javascript