【发布时间】:2020-07-11 05:51:33
【问题描述】:
我在 CSS 中制作了一个打字动画。我对这封信没有完全显示有疑问。 尝试将“m”作为一个字母,也使动画感觉更自然。它需要看起来像有人在打字。 需要帮助以分别为“remirror”中的每个字母设置动画,并使其看起来像是有人在打字,因此每个键的输入时间都会稍有偏差。
https://codepen.io/shahil/pen/ZEGwMxQ
@font-face {
font-family: danub;
src: url(https://cdn.getforge.com/remirror.getforge.io/1585586993/danub.ttf);
}
@-webkit-keyframes typing {
from {
width: 0;
}
to {
width: 16.3em;
}
}
@-moz-keyframes typing {
from {
width: 0;
}
to {
width: 16.3em;
}
}
@-webkit-keyframes blink-caret {
from,
to {
border-color: transparent;
}
50% {
border-color: black;
}
}
@-moz-keyframes blink-caret {
from,
to {
border-color: transparent;
}
50% {
border-color: black;
}
}
body {
font-family: Consolas, monospace;
}
h1 {
font-size: 3rem;
width: 16.3em;
white-space: nowrap;
overflow: hidden;
color: #000;
border-right: 0.1em solid black;
font-family: danub;
-webkit-animation: typing 17s steps(30, end),
/* # of steps = # of characters */ blink-caret 1s step-end infinite;
}
<h1>remirror</h1>
【问题讨论】:
-
我看到导致问题的最大原因是您选择的字体看起来不像是等宽字体(每个字母的宽度都相同)。
-
是的,但我必须坚持使用这种字体作为要使用的主要字体。
-
如果您坚持使用该字体,我能看到的最佳情况是创建一个大型多步动画,在其中为所需的每个字符提供精确的宽度。不会有快速解决此问题的方法。
-
好的,但是我们需要为每个角色设置动画延迟是吗?
标签: html css css-animations css-transitions