纯html+css实现打字效果


Posted in HTML / CSS onAugust 02, 2021

本文主要介绍了纯html+css实现打字效果,具有一定的参考价值,感兴趣的可以了解一下

效果图

纯html+css实现打字效果

分析
 

可以将动画看做三个不同的层次:

  • 最底层的文字
  • 中间挡住文字的背景
  • 最上层的光标

文字是静止的,而中间的背景和最上层的光标是动态的。
初始时,背景挡住所有的文字,光标在最左边。
动画进行时,背景和光标以相同的步伐从左往右移动。
动画结束时,背景不再遮挡文字,光标则在最右边闪烁。

纯html+css实现打字效果

代码
 

html
 

<div class="text">hello,world!</div>

css
 

:root {
    /* 字符数量 */
    --steps: 12;
    /* 动画时间 */
    --duration: 2.5s;
    /* 字体大小 */
    --fontSize: 50px;
    /* 光标大小 */
    --cursorSize: 20px;
}

.text {
    color: #333;;
    position: relative;
    display: inline-block;
    font-family: 'Courier New', Courier, monospace;
    font-size: var(--fontSize);
    line-height: 1;
}

.text::after {
    content: '';
    width: var(--cursorSize);
    height: var(--fontSize);
    background-color: black;
    z-index: 2;
    position: absolute;
    animation: blink 1s var(--duration) step-end infinite,
               moveCursor var(--duration) steps(var(--steps)) forwards;
}

.text::before {
    content: '';
    width: 100%;
    height: var(--fontSize);
    z-index: 1;
    position: absolute;
    background: linear-gradient(#fff, #fff) no-repeat top right;
    animation: showText var(--duration) steps(var(--steps)) forwards;
}

/* 光标闪烁动画 */
@keyframes blink {
    0% {
        background-color: black;
    }
    50% {
        background-color: transparent;
    }
    100% {
        background-color: black;
    }
}

/* 光标移动动画 */
@keyframes moveCursor {
    0% {
        left: 0%;
    }
    100% {
        left: 100%;
    }
}

/* 背景移动动画 */
@keyframes showText {
    0% {
        background-size: 100% 100%;
    }
    100% {
        background-size: 0% 100%;
    }
}

注意
字体必须是等宽字体。因为光标每次移动的距离是是根据字符的数量 / 总宽度来决定的。
 

在线演示
 

到此这篇关于纯html+css实现打字效果的文章就介绍到这了,更多相关html css打字效果内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章,希望大家以后多多支持三水点靠木!

 
HTML / CSS 相关文章推荐
css3与html5实现响应式导航菜单(导航栏)效果分享
Feb 12 HTML / CSS
纯CSS改变webkit内核浏览器的滚动条样式
Apr 17 HTML / CSS
详解如何在css中引入自定义字体(font-face)
May 17 HTML / CSS
浅谈CSS3 box-sizing 属性 有趣的盒模型
Apr 02 HTML / CSS
HTML5新控件之日期和时间选择输入的实现代码
Sep 13 HTML / CSS
基于Modernizr 让网站进行优雅降级的分析
Apr 21 HTML / CSS
HTML5实现锚点时请使用id取代name
Sep 06 HTML / CSS
用HTML5制作一个简单的桌球游戏的教程
May 12 HTML / CSS
基于HTML5的齿轮动画特效
Feb 29 HTML / CSS
HTML5 canvas实现移动端上传头像拖拽裁剪效果
Mar 14 HTML / CSS
使用Html5中的cavas画一面国旗
Sep 25 HTML / CSS
canvas实现图片镜像翻转的2种方式
Jul 22 HTML / CSS
html form表单基础入门案例讲解
Jul 21 #HTML / CSS
带你了解CSS基础知识,样式
Jul 21 #HTML / CSS
CSS实现隐藏搜索框功能(动画正反向序列)
Jul 21 #HTML / CSS
详解CSS3.0(Cascading Style Sheet) 层叠级联样式表
html5实现点击弹出图片功能
Jul 16 #HTML / CSS
纯CSS3实现div按照顺序出入效果
CSS3中Animation实现简单的手指点击动画的示例
You might like
重新封装zend_soap实现http连接安全认证的php代码
2011/01/12 PHP
php生成txt文件标题及内容的方法
2014/01/16 PHP
php比较两个绝对时间的大小
2014/01/31 PHP
PHP集成百度Ueditor 1.4.3
2014/11/23 PHP
PHP中list方法用法示例
2016/12/01 PHP
PHP使用GD库制作验证码的方法(点击验证码或看不清会刷新验证码)
2017/08/15 PHP
php无限级分类实现评论及回复功能
2019/02/18 PHP
PHP面向对象程序设计__tostring()和__invoke()用法分析
2019/06/12 PHP
javascript函数库-集合框架
2007/04/27 Javascript
jQuery 1.3 和 Validation 验证插件1.5.1
2009/07/09 Javascript
Jquery 自定义动画概述及示例
2013/03/29 Javascript
jQuery分组选择器用法实例
2014/12/23 Javascript
JQ实现新浪游戏首页幻灯片
2015/07/29 Javascript
JavaScript中Boolean对象的属性解析
2015/10/21 Javascript
jQuery中 bind的用法简单介绍
2017/02/13 Javascript
JS使用ActiveXObject实现用户提交表单时屏蔽敏感词功能
2017/06/20 Javascript
NodeJS实现不可逆加密与密码密文保存的方法
2018/03/16 NodeJs
angularJs中$http获取后台数据的实例讲解
2018/08/08 Javascript
vue 开发之路由配置方法详解
2019/12/02 Javascript
vue滑动吸顶及锚点定位的示例代码
2020/05/10 Javascript
[51:22]Fnatic vs IG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
Python中使用中文的方法
2011/02/19 Python
Python使用ftplib实现简易FTP客户端的方法
2015/06/03 Python
初探TensorFLow从文件读取图片的四种方式
2018/02/06 Python
对python For 循环的三种遍历方式解析
2019/02/01 Python
Python sqlite3查询操作过程解析
2020/02/20 Python
纪伊国屋新加坡网上书店:Kinokuniya新加坡
2017/12/29 全球购物
Janie and Jack美国官网:GAP旗下的高档童装品牌
2019/09/09 全球购物
解决方案设计综合面试题
2015/08/31 面试题
市场部管理制度
2014/02/02 职场文书
同志主要表现材料
2014/08/21 职场文书
反洗钱宣传活动总结
2014/08/26 职场文书
2015年医药代表工作总结
2015/04/25 职场文书
全民创业工作总结
2015/08/13 职场文书
当你焦虑迷茫时,请读读这6句话
2019/07/24 职场文书
海贼王十大逆天果实 魂魂果实上榜,岩浆果实攻击力最强
2022/03/18 日漫