CSS 流畅的文字动画
CSS smooth text animation
我是 CSS 动画的新手,我有三个不同的词,想每 3 秒更改一次。没关系,但我也想从左到右“平滑地”更改它。如果仅存在纯 CSS 解决方案,则加号。
这是我的基本 html(块是 diplay: block
)
<div class="rotating-text-first block">
<span id="rotating-text" class="block">
</span>
</div>
和css - 它不能正常工作
.rotating-text-first {
overflow: hidden;
animation: floatText 5s linear infinite;
}
#rotating-text::before {
content: '';
animation: spin 5s linear infinite;
}
@keyframes spin {
0% {
content: 'WEB';
}
33% {
content: 'E-SHOP';
}
66% {
content: 'APLIKACE';
}
}
@keyframes floatText {
0% {
max-width: 0%;
}
32.9% {
max-width: 50%;
}
33% {
max-width: 0%;
}
65.9% {
max-width: 50%;
}
66% {
max-width: 0%;
}
99.9% {
max-width: 50%;
}
}
希望这段代码能解决您的问题或为您树立榜样。
- 仅使用 CSS 和虚拟文本。
- 你可以随心所欲地玩时间间隔。
.rotating-text-first {
overflow: hidden;
position:relative;
min-width: 100%;
height: 24px;
}
#rotating-text::before {
content: '';
position: absolute;
animation: spin 5s linear infinite;
transform: translateX(-102%);
}
@keyframes spin {
0% {
content: 'WEB';
transform: translateX(-102%);
}
8.333% {
transform: translateX(0);
}
16.666% {
transform: translateX(0);
}
24.999% {
content: 'WEB';
transform: translateX(-102%);
}
33.333% {
content: 'E-SHOP';
transform: translateX(-102%);
}
41.666% {
transform: translateX(0);
}
49.999% {
transform: translateX(0);
}
58.333% {
content: 'E-SHOP';
transform: translateX(-102%);
}
66.666% {
content: 'APLIKACE';
transform: translateX(-102%);
}
74.999% {
transform: translateX(0);
}
83.333% {
transform: translateX(0);
}
91.666% {
content: 'APLIKACE';
transform: translateX(-102%);
}
}
<div class="rotating-text-first block">
<span id="rotating-text" class="block">
</span>
</div>
为了使代码更短,下面将做同样的事情。为了上面的代码更容易理解,我写的比较长。
@keyframes spin {
8.333%,
16.666%,
41.666%,
49.999%,
74.999%,
83.333%{
transform: translateX(0);
}
0%,
24.999%{
content: 'WEB';
transform: translateX(-102%);
}
33.333%,
58.333%{
content: 'E-SHOP';
transform: translateX(-102%);
}
66.666%,
91.666%{
content: 'APLIKACE';
transform: translateX(-102%);
}
}
我是 CSS 动画的新手,我有三个不同的词,想每 3 秒更改一次。没关系,但我也想从左到右“平滑地”更改它。如果仅存在纯 CSS 解决方案,则加号。
这是我的基本 html(块是 diplay: block
)
<div class="rotating-text-first block">
<span id="rotating-text" class="block">
</span>
</div>
和css - 它不能正常工作
.rotating-text-first {
overflow: hidden;
animation: floatText 5s linear infinite;
}
#rotating-text::before {
content: '';
animation: spin 5s linear infinite;
}
@keyframes spin {
0% {
content: 'WEB';
}
33% {
content: 'E-SHOP';
}
66% {
content: 'APLIKACE';
}
}
@keyframes floatText {
0% {
max-width: 0%;
}
32.9% {
max-width: 50%;
}
33% {
max-width: 0%;
}
65.9% {
max-width: 50%;
}
66% {
max-width: 0%;
}
99.9% {
max-width: 50%;
}
}
希望这段代码能解决您的问题或为您树立榜样。
- 仅使用 CSS 和虚拟文本。
- 你可以随心所欲地玩时间间隔。
.rotating-text-first {
overflow: hidden;
position:relative;
min-width: 100%;
height: 24px;
}
#rotating-text::before {
content: '';
position: absolute;
animation: spin 5s linear infinite;
transform: translateX(-102%);
}
@keyframes spin {
0% {
content: 'WEB';
transform: translateX(-102%);
}
8.333% {
transform: translateX(0);
}
16.666% {
transform: translateX(0);
}
24.999% {
content: 'WEB';
transform: translateX(-102%);
}
33.333% {
content: 'E-SHOP';
transform: translateX(-102%);
}
41.666% {
transform: translateX(0);
}
49.999% {
transform: translateX(0);
}
58.333% {
content: 'E-SHOP';
transform: translateX(-102%);
}
66.666% {
content: 'APLIKACE';
transform: translateX(-102%);
}
74.999% {
transform: translateX(0);
}
83.333% {
transform: translateX(0);
}
91.666% {
content: 'APLIKACE';
transform: translateX(-102%);
}
}
<div class="rotating-text-first block">
<span id="rotating-text" class="block">
</span>
</div>
为了使代码更短,下面将做同样的事情。为了上面的代码更容易理解,我写的比较长。
@keyframes spin {
8.333%,
16.666%,
41.666%,
49.999%,
74.999%,
83.333%{
transform: translateX(0);
}
0%,
24.999%{
content: 'WEB';
transform: translateX(-102%);
}
33.333%,
58.333%{
content: 'E-SHOP';
transform: translateX(-102%);
}
66.666%,
91.666%{
content: 'APLIKACE';
transform: translateX(-102%);
}
}