[老来学前端] 打字机效果

前言

之前在 openAI 官网 中看到一个打字机动画效果不错,自己参考网上的例子,逐步的实现。

演示

点击查看【codepen】
在这里插入图片描述

代码重点详解

等宽字体 和 width 使用 ch 为长度单元

配合等宽字体 monospace ,width 以 ch 单位改变,就可以逐个字的显示。后续加上 animation ,就有了打字机的效果。

在这里插入图片描述

keyframe 0% 和 100% 在同一个位置

如果 0% 和 100% 设置同一个值,且设置在同一个keyframe中,默认已经有 alternate 的效果了。同时 steps 帧数,其实就是单侧动画的帧数。(正常情况是 steps 是整个动画的帧数)

@keyframes typing {
    0%, 100% {
        width: 0ch;
    }
    45%, 55% {
        width: 10ch;
    }
}

animation: typing 4s .5s steps(11), jump-none) forwards 1;  
/* 其实整个动画下来是 22 步的 */

animation steps jump-none 使用

div span {
  width: 0ch;  
}


animation: typing 4s .5s steps(11), jump-none) forwards 1;  

robinZhang 有10个字符,但是需要切分成 11格 动画,同时使用 jump-none,保证了 第一帧和最后一帧都不会跳过。
这样设计的前提:

  1. 第一帧都是从 无 即 0ch 出现的
  2. 动画整体的逻辑是 一个个字体出现,之后再停顿,再一个个字体的消失,所以中间停顿的时候,是最大的长度(10ch)

对比 jump-none, jump-start, jump-end, jump-both 会在其他的文章中

总结

animation 已经是很多浏览器和现代网站的支持了,如果想页面的效果好,还是需要对此进行了解。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值