效果图如下:
实现思路:
1 用animation-timing-function: steps()属性,设置动画的速度曲线。steps的意思是,将动画分为几步展示。
2 先将盒子的宽度设为0,并设置右边框实现光标效果。
3 将最终动画的盒子宽度设置为 字体大小 x 字体数量 px,然后steps处填(字体数量)
4 最后给盒子设置overflow:hidden 即可实现每次出现一个字。
具体代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
@keyframes print {
0% {}
100% {
width: 180px;
}
}
div {
width: 0;
font-size: 30px;
white-space: nowrap;
overflow: hidden;
border-right: 1px solid black;
animation-name: print;
animation-duration: 2s;
animation-fill-mode: forwards;
animation-timing-function: steps(6);
</style>
</head>
<body>
<div>好好学习好吧</div>
</body>
</html>