使用CSS伪元素和动画实现光标闪烁效果
当用户在 chatGPT 输入问题之后, 并且chatGPT 尚没有返回的时候, 我们会看到有个黑色的圆点在闪烁. 如何实现这么一个闪烁的圆点?
以下是现实代码:
.toggle-text::after {
font-size: 12px;
animation: toggle 1s infinite;
content: '⚫';
}
@keyframes toggle {
0%, 50% {
opacity: 0;
}
50.01%, 100% {
opacity: 1;
}
}
<div class='toggle-text'>text</div>
这里面用到的技术
- CSS 伪元素: 这里的
::after
就是CSS 伪元素, 它们都不是真实存在的元素. 它不属于对应的html 元素, 而是在它之后, 当然还有很多其它伪元素. - CSS 动画: 这里通过
animation
来实现动画. 动画的帧通过配合 @keyframes 来完成. - @keyframes 通过
opacity
来实现透明度, 造成闪烁的效果. - 这里插入的是 ⚫, 其实它是一个 unicode 字符, 还有更小的点, 也可以给他改变font 大小, 颜色等. 还有其它各种 unicode 表示的点. 看这里: https://www.unicodepedia.com/groups/geometric-shapes/