Metrica
Skip to content
astro-rocket компоненты кастомизация руководство javascript

Эффект печатающегося текста в Fastry — как это работает и как настроить

Заголовок Hero в Fastry циклически перебирает слова с анимацией печати. Узнайте, как это работает, как настроить скорость и паузы и как полностью отключить эффект.

Almaz

2 мин. чтения

Откройте страницу «О нас» в Fastry, и заголовок не стоит на месте. Он печатает слово, делает паузу, удаляет его и печатает следующее — циклически. В этом посте объясняется, как построен этот эффект, что контролирует каждое значение и как сделать его быстрее, медленнее или полностью убрать.

Где находится компонент

Весь эффект находится в одном файле:

src/components/ui/TypingEffect.astro

Это стандартный компонент Astro со встроенным <style> для мигания курсора и <script> для логики печати. Никаких сторонних библиотек или внешних зависимостей.

Как работает анимация

Компонент использует один рекурсивный цикл setTimeout — никакого setInterval. Каждый вызов tick() решает, добавлять или удалять один символ, затем планирует следующий вызов через соответствующую задержку.

Старт
  └─ ожидание 600 мс (начальная задержка)
       └─ tick()
            ├─ печать:   добавить один символ, подождать typeSpeed мс
            │    └─ когда слово завершено: подождать pauseAfterType мс, переключиться на удаление
            └─ удаление: удалить один символ, подождать deleteSpeed мс
                 └─ когда пусто: подождать pauseAfterDelete мс, перейти к следующему слову

Начальная задержка в 600 мс существует, чтобы анимация не начиналась во время отрисовки страницы на медленном соединении.

Свойства и их значения по умолчанию

СвойствоПо умолчаниюЧто контролирует
words(обязательно)Массив строк для циклического перебора
typeSpeed120Миллисекунды между каждым печатаемым символом
deleteSpeed70Миллисекунды между каждым удаляемым символом
pauseAfterType1800Пауза в мс после полного набора слова
pauseAfterDelete400Пауза в мс после полного удаления слова

Шпаргалка по настройке

ЦельЧто изменить
Быстрее печатьУменьшить typeSpeed (например, 120 → 60)
Медленнее печатьУвеличить typeSpeed (120 → 180)
Быстрее удалениеУменьшить deleteSpeed (70 → 35)
Длиннее пауза после печатиУвеличить pauseAfterType (1800 → 3000)
Короче пауза между словамиУменьшить pauseAfterDelete (400 → 150)
Другие словаИзменить массив words
Другой символ курсораЗаменить `
Удалить эффектЗаменить <TypingEffect> на простой <span>

Доступность

Компонент оборачивает всё в <span> с aria-label, содержащим все слова через запятую. Скринридеры объявляют полный список слов из aria-label и игнорируют анимированное содержимое внутри.

Влияние на SEO

Astro рендерит заголовок на сервере, поэтому полный элемент присутствует в HTML-коде до выполнения JavaScript. Поисковые системы читают статический HTML и индексируют все слова из aria-label.

Поделиться:

Похожие записи

Как работает дизайн-система Fastry — токены, цвета и тёмный режим

Fastry использует трёхуровневую архитектуру токенов с цветами OKLCH. Измените одно значение, и весь сайт обновится. Вот как это работает и как настроить под себя.

Almaz
2 мин.
astro-rocket дизайн-система tailwind кастомизация руководство

Мультиязычность: родная интернационализация в Fastry 1.3.0

Как работает новая опциональная система i18n, что она добавляет при включении и точные шаги для запуска сайта на английском и втором языке.

Almaz
2 мин.
astro-rocket i18n интернационализация руководство v1-3-0

Настройка Fastry — каждый переключатель, тема и опция макета

Полное руководство по параметрам конфигурации Fastry: 12 цветовых тем, цвета OKLCH, типографика, радиус и тени, стили шапки, тёмный режим и многое другое.

Almaz
2 мин.
astro-rocket настройка кастомизация темы

Подписывайтесь

Будьте в курсе – новые статьи, мысли и обновления.