Как я могу добиться анимации загрузки текста CSS в несколько строк?
Я пытаюсь реализовать анимацию загрузки текста с помощью CSS
. то, что у меня есть, это текст черного цвета, затем, когда страница загружается, текст заполняется и начинает заполняться красным цветом в течение нескольких секунд.
Проблема, с которой я сталкиваюсь, заключается в том, что анимация загрузки текста работает нормально, но когда текст заканчивается и начинается с новой строки, текст анимации все еще продолжается в той же строке.
Как я могу это исправить?
код:
body {
background: #3498db;
font-family: sans-serif;
}
h1 {
position: relative;
color: rgba(0, 0, 0, .3);
font-size: 5em;
white-space: wrap;
}
h1:before {
content: attr(data-text);
position: absolute;
overflow: hidden;
max-width: 100%;
white-space: nowrap;
word-break: break-all;
color: #fff;
animation: loading 8s linear;
}
@keyframes loading {
0% {
max-width: 0;
}
}
<h1 data-text="Suspendisse mollis dolor vitae porta egestas. Nunc nec congue odio.">Suspendisse mollis dolor vitae porta egestas. Nunc nec congue odio.</h1>
Ответы
Ответ 1
Идея состоит в том, чтобы рассмотреть градиентную окраску со встроенным элементом. Просто обратите внимание на поддержку браузером background-clip: text
body {
background: #3498db;
font-family: sans-serif;
}
h1 {
font-size: 5em;
}
h1 span {
background:
linear-gradient(#fff,#fff) left no-repeat,
rgba(0, 0, 0, .3);
background-size:0% 100%;
-webkit-background-clip: text;
background-clip: text;
-webkit-text-fill-color: transparent;
color: transparent;
animation:loading 5s forwards linear;
}
@keyframes loading {
100% {
background-size:100% 100%;
}
}
<h1><span>Suspendisse mollis dolor vitae porta egestas. Nunc nec congue odio.</span></h1>