Узнайте, как сделать матрицу из фильма

Узнайте, как сделать матрицу из фильма

@labweb
Матрица

Шаг 1: Добавляем HTML с CSS

<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8">
  <title> WebLab - Matrix </title>
</head>

<body style="margin: 0; background: black; overflow: hidden;">
  <canvas id='weblab'> </canvas>
</body>

</html>  

Шаг 2: Добавляем JavaScript

<script>
    // Объявляем переменную, контекст, определяем высоту и ширину
    const C = document.getElementById("weblab"),
       ctx = C.getContext("2d"),
       W = (C.width = window.innerWidth),
       H = (C.height = window.innerHeight);
    // Создаем массив с символами, которые будут визуализироваться
    const mass = "チャンネル に登録して、 電報チャンネル の記事を高く評価する",
       webmatrix = mass.split("");
    //Задаем размер шрифта, считаем колонки и создаем пустой массив
    let font = 14,
       col = W / font,
       mas = [];
    //Заполняем массив
    for (let i = 0; i < col; i++) mas[i] = 1;

    function draw() {
      //Цвет фона, который делает эффект затухания символов
      ctx.fillStyle = "rgba(0,0,0,0.05)";
      ctx.fillRect(0, 0, W, H);
      //Цвет шрифта
      ctx.fillStyle = "#0f0";
      //Свойства шрифта
      ctx.font = font + "px arial";
      //Рисуем символы
      for (let i = 0; i < mas.length; i++) {
        //Случайный набор символов
        let text = webmatrix[Math.floor(Math.random() * webmatrix.length)];
        //Отрисовка символов со смещением
        ctx.fillText(text, i * font, mas[i] * font);
        //Разница отрисовки колонок
        if (mas[i] * font > H && Math.random() > 0.975) mas[i] = 0;
        //Увеличиваем значение
        mas[i]++;
      }
    }
    //Запускаем функцию рисования через каждые 47 миллисекунды
    setInterval(draw, 47);
    //При изменении размеров окна происходит обновление страницы
    window.addEventListener("resize", () => location.reload());
  </script>

На этом всё, теперь ты сможешь сделать свою матрицу!

Подписывайся на мой телеграм канал о мире веб-разработки.

По вопросам писать в бота @WebLabFeedBackBot

Report Page