CSS-анимация — это простой способ добавить дополнительные интерактивные элементы на ваш сайт. Даже самый простой анимационный эффект может превратить скучную статичную веб-страницу в интересный и увлекательный веб-проект.
В этой статье мы покажем вам, как добиться эффекта анимации ввода текста с помощью CSS. С этим эффектом текст на экране будет выглядеть так, как если бы он печатался на пишущей машинке или в текстовом процессоре.
Давайте пошагово рассмотрим процесс создания:
Для начала напишем HTML-код, который будем анимировать. Создадим контейнер div с контейнером class, который содержит текстовый элемент. Внутри контейнера поместим абзац, добавим этому абзацу типизированный класс и вставим любой текст:
В этом примере мы используем элемент p, но вы также можете использовать любой элемент, который содержит текст, например h1.
Далее мы будем использовать анимацию CSS, чтобы добавить эффект набора текста. В своем CSS установите контейнер div, как встроенный блок со свойством display.
.container{
display: inline-block;
font-family: «arial»;
font-size: 24px; }
С помощью установки display на inline-block ширина контейнера div будет равна ширине текста абзаца внутри. Затем необходимо стилизовать наш типизированный элемент свойствами:
.container{
display: inline-block;
font-family: «arial»;
font-size: 24px;
}
.typed {
overflow: hidden;
white-space: nowrap;
width: 0;
}
@keyframes typing {
from { width: 0 }
to { width: 100% }
}
.container{
display: inline-block;
font-family: «arial»;
font-size: 24px;
}
.typed {
overflow: hidden;
white-space: nowrap;
width: 0;
animation: typing;
animation-duration: 1.5s;
animation-timing-function: steps(30, end); animation-fill-mode: forwards;
}
@keyframes typing {
from { width: 0 }
to { width: 100% }
}
В зависимости от длины вашего текста вы можете увеличивать или уменьшать продолжительность и количество шагов анимации, чтобы добиться нужного эффекта.
Полученную анимацию можно сделать еще лучше с помощью добавления эффекта «курсор» — это поможет создать эффект печати.
Добавить курсор просто: необходимо использовать правую границу нашего элемента абзаца, которая перемещается по мере увеличения ширины элемента абзаца. Просто добавьте border-right: 2px solid к вашему блоку .typed CSS. Вы также можете настроить ширину и цвет границы по своему вкусу.
Чтобы добавить курсору эффект мерцания, вам необходимо создать второе правило @keyframes под названием blinking, которое начинает цвет границы как прозрачный, затем меняет его на черный, а затем снова на прозрачный:
@keyframes blinking {
0% {border-right-color: transparent}
50% {border-right-color: black}
100% {border-right-color: transparent}
}
Необходимо применить это правило @keyframes к нашему блоку .typed CSS. Вы можете установить продолжительность мигания на одну секунду или сделать его бесконечным.
В самом конце мы рекомендуем отцентрировать анимацию. Для этого возьмем код, который у нас есть, и внесем небольшие изменения в контейнер:
.container{
font-family: «arial»;
font-size: 24px;
display: grid;
place-items: center;
width: 350px;
}
.typed {
overflow: hidden;
white-space: nowrap;
border-right: 2px solid;
width: 0;
animation: typing 1.5s steps(30, end) forwards, blinking 1s infinite;
}
@keyframes typing {
from { width: 0 }
to { width: 100% }
}
@keyframes blinking {
0% {border-color: transparent}
50% {border-color: black}
100% {border-color: transparent}
}
Источник: hubspot.com
Я даю согласие OOO «ЭсБилдер» (далее «BINN») на обработку моих персональных данных в соответствии со статьями 6, 9, 10, 18 Федерального закона от 27 июля 2006 года № 152-ФЗ «О персональных данных», указанных в онлайн-форме и/или предоставленных мною с целью:
Способы обработки персональных данных могут быть любыми, включая сбор, систематизацию, накопление, хранение, уточнение, обновление, изменение, воспроизведение, обезличивание, блокирование и уничтожение.
Настоящее согласие применяется в отношении обработки следующих данных: имя, номер телефона, адрес электронной почты (E-mail).
Настоящее согласие предоставляется сроком на пять лет. По истечении указанного срока действие согласия считается продленным на каждые следующие пять лет при отсутствии сведений о его отзыве.
Согласие может быть отозвано мною в любой момент путем направления в BINN подписанного мною письменного заявления.