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分页效果示例
Oct 11 Javascript
原生JS操作网页给p元素添加onclick事件及表格隔行变色
Dec 01 Javascript
IE中图片的onload事件无效问题和解决方法
Jun 06 Javascript
基于Vue实现timepicker
Apr 25 Javascript
详解使用nvm安装node.js
Jul 18 Javascript
基于jQuery实现定位导航位置效果
Nov 15 jQuery
vue.js vue-router如何实现无效路由(404)的友好提示
Dec 20 Javascript
VUE中v-on:click事件中获取当前dom元素的代码
Aug 22 Javascript
JavaScript学习笔记之数组基本操作示例
Jan 09 Javascript
微信小程序开发实现的选项卡(窗口顶部/底部TabBar)页面切换功能图文详解
May 14 Javascript
Vue实现购物车详情页面的方法
Aug 20 Javascript
微信小程序 wx:for 与 wx:for-items 与 wx:key的正确用法
May 19 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使用explode()函数将字符串拆分成数组的方法
2015/02/17 PHP
Yii2中多表关联查询hasOne hasMany的方法
2017/02/15 PHP
PHP实现根据数组的值进行分组的方法
2017/04/20 PHP
ecshop添加菜单及权限分配问题
2017/11/21 PHP
PHP简单实现正则匹配省市区的方法
2018/04/13 PHP
php app支付宝回调(异步通知)详解
2018/07/25 PHP
Thinkphp页面跳转设置跳转等待时间的操作
2019/10/16 PHP
BOOM vs RR BO5 第一场 2.14
2021/03/10 DOTA
IE autocomplete internet explorer's autocomplete
2007/06/30 Javascript
javascript 面向对象 function类
2010/05/13 Javascript
jquery tab插件制作实现代码
2010/06/22 Javascript
ExtJS实现文件下载的方法实例
2013/11/09 Javascript
js几秒以后倒计时跳转示例
2013/12/26 Javascript
JavaScript的Backbone.js框架入门学习指引
2016/05/07 Javascript
easyui-combobox 实现简单的自动补全功能示例
2016/11/08 Javascript
JS使用正则截取两个字符串之间的字符串实现方法详解
2017/01/06 Javascript
JS实现移动端实时监听输入框变化的实例代码
2017/04/12 Javascript
angularjs1.5 组件内用函数向外传值的实例
2018/09/30 Javascript
js实现无缝滚动双图切换效果
2019/07/09 Javascript
Python中使用items()方法返回字典元素对的教程
2015/05/21 Python
简单讲解Python中的数字类型及基本的数学计算
2016/03/11 Python
Python实现找出数组中第2大数字的方法示例
2018/03/26 Python
Python寻找两个有序数组的中位数实例详解
2018/12/05 Python
python实现两张图片的像素融合
2019/02/23 Python
Pandas之MultiIndex对象的示例详解
2019/06/25 Python
flask框架单元测试原理与用法实例分析
2019/07/23 Python
Pycharm中切换pytorch的环境和配置的教程详解
2020/03/13 Python
python实现数字炸弹游戏程序
2020/07/17 Python
python3中for循环踩过的坑记录
2020/12/14 Python
css3实现一款模仿iphone样式的注册表单
2013/03/20 HTML / CSS
加拿大鞋网:Globo Shoes
2019/12/26 全球购物
工作人员思想汇报
2014/01/09 职场文书
医德医风个人总结
2015/02/28 职场文书
办公室个人总结
2015/02/28 职场文书
SQL实现LeetCode(175.联合两表)
2021/08/04 MySQL
Javascript设计模式之原型模式详细
2021/10/05 Javascript