JavaScript, как создать эту текстовую фоновую анимацию

Блуждая по сети, я нашел эту анимацию и задался вопросом, как можно создать эту фоновую анимацию текста.

Вопрос: Я пытаюсь добиться такой же анимации на своем веб-сайте портфолио, как я могу анимировать эту фоновую анимацию текста в своем собственном проекте?

Пожалуйста, просмотрите Как спросить - ваш вопрос слишком широк для формата вопросов и ответов Stack Overflow. Если вы попытаетесь воссоздать это самостоятельно, но у вас возникнут проблемы, вы можете отредактировать свой вопрос, включив код, который вы написали до сих пор, в качестве минимального воспроизводимого примера.

esqew 10.01.2023 15:26

"любые [...] уроки о том, как сделать этот тип анимации?" Согласно справочному центру, просьбы к нам найти для вас сторонние ресурсы явно не по теме.

esqew 10.01.2023 15:26
Типы данных JavaScript
Типы данных JavaScript
В JavaScript существует несколько типов данных, включая примитивные типы данных и ссылочные типы данных. Вот краткое объяснение различных типов данных...
CSS Flex: что должен знать каждый разработчик
CSS Flex: что должен знать каждый разработчик
CSS Flex: что должен знать каждый разработчик Модуль flexbox, также известный как гибкий модуль разметки box, помогает эффективно проектировать и...
Введение в раздел "Заголовок" в HTML
Введение в раздел "Заголовок" в HTML
Говорят, что лучшее о человеке можно увидеть только изнутри, и это относится и к веб-страницам HTML! Причина, по которой некоторые веб-страницы не...
Как React Helmet спасает меня при разделении файлов CSS?
Как React Helmet спасает меня при разделении файлов CSS?
Многие новички могут столкнуться с проблемой, когда одна страница с CSS наследует свойства от другой страницы с другим CSS. У меня было много проблем,...
Потяните за рычаг выброса энергососущих проектов
Потяните за рычаг выброса энергососущих проектов
На этой неделе моя команда отменила проект, над которым я работал. Неделя усилий пошла насмарку.
Руководство для начинающих по веб-разработке: HTML, CSS и JavaScript.
Руководство для начинающих по веб-разработке: HTML, CSS и JavaScript.
Добро пожаловать, мои коллеги по интернету, в захватывающий мир веб-разработки! Дорогие мои начинающие, я здесь, чтобы провести вас через основы HTML,...
2
2
183
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Обзор: я взглянул на веб-сайт, на который вы ссылаетесь, и на нем есть несколько текстовых строк, которые заполняют весь экран, и они постоянно манипулируют ими.

Как добиться анимации: выберите все текстовые строки с помощью JavaScript и точно измените DOM с помощью innerHTML. Вам нужно получить случайные символы и точно изменить DOM, чтобы добиться запланированной анимации.

Анимация: установите интервал для вызова функции модификации DOM и добавьте логику для создания более сложной анимации.

Пример: Вот простой пример, который я создал, анимация состоит из 1 строки, и мы сдвигаем содержимое влево и вправо.

Внешняя игровая площадка: https://jsfiddle.net/cjkaqstg/49/

CSS:

text{
  font-size:16px;
  white-space:pre;
}

HTML:

<text id = "text-0"></text>

JS:

const text_element = document.getElementById("text-0");
const text_length = 30;
var shift_left = true;

function receiveRandomCharacter()
{
    // Receive a random character
    const characters  = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";

  return characters[Math.floor(Math.random() * characters.length-1) +1];;
}
function modifyText(new_content)
{
    // Function to modify the text content
    text_element.innerHTML = new_content;   
}
function textAnimation()
{ 
  // Add some logic, in this case we will shift the characters to the left and right
  var row_content  = "";
    if (shift_left)
  {
    for(var x=0;x<text_length;x++)
    {
        if (x % 2==0)
      {
        // Even Number, add SPACE as a character
        row_content += "  ";
      }
      else
      {
        // Un-even number, add a random character
        row_content += receiveRandomCharacter();
      }
    }
    modifyText(row_content);
    shift_left = false;
  }
  else
  {
    for(var x=0;x<text_length;x++)
      {
        if (x % 2 ==0)
        {
          // Even Number, add a random character
          row_content += receiveRandomCharacter();
        }
        else
        {
          // Un-even number, add SPACE as a character
          row_content += "  ";
        }
      }
      modifyText(row_content);
      shift_left = true;
    }
    console.info(row_content);
}
const interval = setInterval(function() {
    // Call a function every X milliseconds
   textAnimation();
 }, 300);

Большое спасибо ! Как вы думаете, мне нужно будет кодировать каждый шаг анимации или существует автоматизированный способ сделать это?

ZeMane 10.01.2023 16:04

Дайте мне 5 минут, я создам простой пример.

O'con 10.01.2023 16:13

Вы НЕ будете жестко кодировать каждый кадр, вы будете автоматизировать его, но вам потребуется разработать логику. Я надеюсь, что мой простой пример поможет вам понять, как это получить.

O'con 10.01.2023 16:28

Спасибо ! это действительно поможет мне, спасибо, что уделили этому время, очень ценю это.

ZeMane 10.01.2023 16:37

Пожалуйста! Теперь вам нужно создать несколько строк и управлять ими, чтобы они работали вместе. Не стесняйтесь принять мой ответ, если он вам помог :)!

O'con 10.01.2023 16:41

Другие вопросы по теме