dom结构:
<div class="text">
<p class="line animation">Welcome to GitHub!</p>
</div>
<div class="text margin">
<p class="line animation it">Let’s begin the adventure</p>
</div>
style:
.text {
position: absolute;
top: 10%;
left: 10%;
font-weight: bold;
font-size: 1.2rem;
}
.text.margin {
top: 15%;
}
.line {
width: 100%;
border-right: 2px solid #000;
white-space: nowrap;
overflow: hidden;
}
.animation {
animation: grow 2s steps(70) 1s normal both, blink 200ms infinite normal;
} /*对动画设置时间和分段,对右边框设置动画样式*/
.it {
animation-delay: 3.5s;
} /*下一段延时执行动画*/
@keyframes grow {
from {
width: 0;
}
to {
width: 100%; /*段落长度 */
border-right-color: transparent;
}
0% {
border-right: 0;
} /*光标起始位置不显示*/
1% {
border-right: 2px solid #000;
} /*光标显示*/
99% {
border-right: 2px solid #000;
}
100% {
border-right: 0;
} /*结束位置光标不显示*/
}
@keyframes blink {
from {
border-right-color: #000;
}
to {
border-right-color: transparent; /*文字透明化*/
}
}
实现效果:
自动打字效果