返回顶部
首页 > 资讯 > 精选 >怎么使用JavaScript canvas实现字符雨效果
  • 344
分享到

怎么使用JavaScript canvas实现字符雨效果

2023-07-02 10:07:22 344人浏览 泡泡鱼
摘要

本文小编为大家详细介绍“怎么使用javascript canvas实现字符雨效果”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么使用JavaScript canvas实现字符雨效果”文章能帮助大家解决疑惑,下面跟着小

本文小编为大家详细介绍“怎么使用javascript canvas实现字符雨效果”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么使用JavaScript canvas实现字符雨效果”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

字符雨效果

怎么使用JavaScript canvas实现字符雨效果

分析如何实现

  • 字符雨从上往下逐渐消失: 这是canvas每次画字符的时候就画一遍黑色背景,但是这个背景是有透明度的,并且这个黑色背景的透明度还比较小,只有零点零八(经过测试,0.08比较合适,也可以更改查看效果);字符是从上往下落,上面的字符先出现,下面的字符后出现,程序重复地画黑色背景,就算有透明度,叠加起来,上面的字符就会先被覆盖,下面的后出现的字符还是还比较明显,就形成了逐渐消失的效果。

  • 只有其中一些列出现了字符: 如果不加以控制的话,那么canvas中每一列都会出现字符,不会出现参差不齐的效果。所以用一个代表出现机率的数来控制,当字符落到canvas的底部,并且拿一个随机数和出现机率进行比较,如果随机数大于其,那么这一列就可以从顶部再次出现字符,否则这一列在本次循环就不会出现字符,只有等待下次循环再次拿随机数来比较。这样就实现了有一些列出现字符,而另一些不出现字符的效果。

创建实例

let charRain = new CharRain("canvas_id");

html结构

<canvas id="canvas"></canvas>

CSS代码

body{      margin: 0;      padding: 0;      overflow: hidden;}#canvas{  background-color: #111;}

js源码

;(function(win){        class CharRain    {            constructor(canvas_id){        this.canvas = document.getElementById(canvas_id);        this.context = this.canvas.getContext("2d");        this.bg_alpha = 0.08;    // canvas背景的透明度,也是字符消失的速度;取值范围:0 - 1        this.appearRate = 0.95;  // canvas中每一列字符下落到底部后再次出现字符的机率;取值范围:0 - 1        this.dropSpeed = 30;     // 字符下落速度        this.fontSize = 17;     // 字符大小;也确定了字符列的数目,列之间的间距        this.colunm = 0;        // 画布中的字符列的数目        this.isColorful = false; // 是否呈现彩色字符雨,默认为经典黑底绿字        this.drops = [];        // 记录每一列的字符下落的 y 值        this.timer = null;      // 定时器        this.chars = "abcdefghijklmnopqrstuvwxyz0123456789";  // 可选字符        this.init();      }            init(){        let _this = this;        this.setAttr();        win.addEventListener("resize", function (){ // 添加浏览器窗口变化监听,重新设置相关属性          _this.setAttr();        });        this.timer = setInterval(function (){       // 添加定时器,下落          _this.draw();        }, _this.dropSpeed);      }            setAttr(){        this.canvas.width = win.innerWidth;        this.canvas.height = win.innerHeight;                     // 重新设置 canvas 的宽度和高度        this.colunm = Math.ceil(win.innerWidth / this.fontSize); // 重新设置列数        for (let i=0; i<this.colunm; i++) {          if(!this.drops[i]) {                                    // 已经存在下落字符的列不用设置            this.drops[i] = win.innerHeight;                      // 字符瀑布流直接开始下落          }        }      }            randomColor(){        let r = Math.floor(Math.random()*256);        let g = Math.floor(Math.random()*256);        let b = Math.floor(Math.random()*256);        return "rgba("+r+","+g+","+b+", 1)";      }            draw(){        this.context.fillStyle = "rgba(1,1,1," + this.bg_alpha + ")";    // 叠加画黑色背景,通过不透明度,形成字符逐渐消失的效果        this.context.fillRect(0, 0, win.innerWidth, win.innerHeight);    // 画矩形以清除之前画的字符        this.context.font = this.fontSize + "px Consolas";               // 设置字符的大小、样式        if(this.isColorful) {          this.context.fillStyle = this.randomColor();                   // 呈现彩色字符雨        } else {          this.context.fillStyle = "#00cc33";                             // 经典黑底绿字        }        for(let i=0; i<this.colunm; i++) {                               // 在每一列上画出字符          let index = Math.floor(Math.random() * this.chars.length);    // 随机一个字符          let x = i * this.fontSize;          let y = this.drops[i] * this.fontSize;                        // 字符在 y 轴方向上的距离          this.context.fillText(this.chars[index], x, y);               // 画字符          if (y>=this.canvas.height && Math.random()>this.appearRate) { // 字符落到底部 && 有再次出现的机率            this.drops[i] = 0;                                          // 0 代表每一列的字符位置回到顶部          } else {              this.drops[i]++;                                            // 字符逐渐下落,字符在 y 轴上的距离增加一          }        }       }    }    win.CharRain = CharRain;  }(window));

读到这里,这篇“怎么使用JavaScript canvas实现字符雨效果”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网精选频道。

--结束END--

本文标题: 怎么使用JavaScript canvas实现字符雨效果

本文链接: https://lsjlt.com/news/341420.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎么使用JavaScript canvas实现字符雨效果
    本文小编为大家详细介绍“怎么使用JavaScript canvas实现字符雨效果”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么使用JavaScript canvas实现字符雨效果”文章能帮助大家解决疑惑,下面跟着小...
    99+
    2023-07-02
  • JavaScript canvas实现字符雨效果
    本文实例为大家分享了JavaScript canvas实现字符雨效果的具体代码,供大家参考,具体内容如下 字符雨效果 分析如何实现 字符雨从上往下逐渐消失: 这是canvas每次画...
    99+
    2024-04-02
  • JavaScript怎么实现字符雨效果
    今天小编给大家分享一下JavaScript怎么实现字符雨效果的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。具体代码如下<...
    99+
    2023-07-02
  • JavaScript实现字符雨效果
    本文实例为大家分享了JavaScript实现字符雨效果的具体代码,供大家参考,具体内容如下 <html>     <head>         <met...
    99+
    2024-04-02
  • javascript canvas实现雨滴效果
    本文实例为大家分享了javascript canvas实现雨滴效果的具体代码,供大家参考,具体内容如下 先看效果 看起来很炫酷,其实就是实现了雨滴的掉落还有最后的圆 还是看源码 ...
    99+
    2024-04-02
  • 使用canvas怎么实现一个数字雨效果
    使用canvas怎么实现一个数字雨效果?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。效果图:代码:<!DOCTYPE html><h...
    99+
    2023-06-09
  • JavaScript canvas实现代码雨效果
    本文实例为大家分享了canvas实现代码雨效果的具体代码,供大家参考,具体内容如下 先看效果图 这个效果图是不是像极了以前电影里面的黑客技术,看起来蛮难的,其实操作起来还是挺简单的...
    99+
    2024-04-02
  • javascript中canvas如何实现雨滴效果
    这篇文章将为大家详细讲解有关javascript中canvas如何实现雨滴效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。本文实例为大家分享了javascript canvas实现雨滴效果的具体代码,供...
    99+
    2023-06-15
  • JavaScript中canvas实现代码雨效果的方法
    这篇文章将为大家详细讲解有关JavaScript中canvas实现代码雨效果的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。本文实例为大家分享了canvas实现代码雨效果的具体代码,供大家参考,具体内...
    99+
    2023-06-15
  • js+canvas实现代码雨效果
    本文实例为大家分享了js+canvas代码雨效果的具体代码,供大家参考,具体内容如下 代码: <!DOCTYPE html> <html> <h...
    99+
    2024-04-02
  • 使用canvas怎么实现一个下雨效果的示例
    本篇文章为大家展示了使用canvas怎么实现一个下雨效果的示例,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。<!doctype html><html lang=...
    99+
    2023-06-09
  • JavaScript利用canvas绘制流星雨效果
    目录前言需求分析实现过程1.绘制满天繁星2.满天繁星闪起来3.绘制流星4.流星划过夜空5.流星雨6.merge视觉盛宴前言 最近总是梦见一些小时候的故事,印象最深刻的就是夏天坐在屋顶...
    99+
    2022-11-13
    JavaScript canvas绘制流星雨 JavaScript canvas 流星雨 JavaScript 流星雨
  • JavaScript实现代码雨效果
    本文实例为大家分享了JavaScript实现代码雨效果的具体代码,供大家参考,具体内容如下 <!DOCTYPE html> <html lang="en"> ...
    99+
    2024-04-02
  • 怎么用JavaScript canvas实现刮刮效果
    本篇内容主要讲解“怎么用JavaScript canvas实现刮刮效果”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用JavaScript canvas实现刮刮效果”吧!具体内容如下HTML...
    99+
    2023-06-25
  • Android实现字母雨的效果
    首先来看效果: 一、实现原理 在实现过程中,主要考虑整个界面由若干个字母组成的子母线条组成,这样的话把固定数量的字母封装成一个字母线条,而每个字母又封装成一个对象,这样的...
    99+
    2022-06-06
    字母 Android
  • cmd命令怎么实现数字雨的效果
    这篇文章主要介绍“cmd命令怎么实现数字雨的效果”,在日常操作中,相信很多人在cmd命令怎么实现数字雨的效果问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”cmd命令怎么实现数字雨的效果”的疑惑有所帮助!接下来...
    99+
    2023-07-01
  • JavaScript如何实现流星雨效果
    这篇文章主要介绍“JavaScript如何实现流星雨效果”,在日常操作中,相信很多人在JavaScript如何实现流星雨效果问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JavaScript如何实现流星雨效果...
    99+
    2023-07-02
  • 怎么用Python实现流星雨效果
    这篇文章将为大家详细讲解有关怎么用Python实现流星雨效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。流星雨的前提是得先有一个流星,所谓流星,就是一个拖着尾巴的直线。所谓拖着尾巴,实际上是我们的浪漫想...
    99+
    2023-06-22
  • 使用HTML怎么实现一个代码雨效果
    本篇文章为大家展示了使用HTML怎么实现一个代码雨效果,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。绿色:彩色:背景色:绿色逐渐变浅:源代码:<!DOCTYPE html>&l...
    99+
    2023-06-09
  • HTML5 canvas怎么实现文字渲染效果
    这篇文章主要介绍“HTML5 canvas怎么实现文字渲染效果”,在日常操作中,相信很多人在HTML5 canvas怎么实现文字渲染效果问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作