纯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 3D位移translate效果实例介绍
May 03 HTML / CSS
css3中background新增的4个新的相关属性用法介绍
Sep 26 HTML / CSS
基于css3 animate制作绚丽的动画效果
Nov 24 HTML / CSS
HTML5印章绘制电子签章图片(中文英文椭圆章、中文英文椭圆印章)
Jun 03 HTML / CSS
HTML5地理定位_动力节点Java学院整理
Jul 12 HTML / CSS
基于HTML5陀螺仪实现ofo首页眼睛移动效果的示例
Jul 31 HTML / CSS
使用html5 canvas绘制圆环动效
Jun 03 HTML / CSS
手摸手教你用canvas实现给图片添加平铺水印的实现
Aug 20 HTML / CSS
浅谈Html5页面打开app的一些思考
Mar 30 HTML / CSS
html5的pushstate以及监听浏览器返回事件的实现
Aug 11 HTML / CSS
关于html选择框创建占位符的问题
Jun 09 HTML / CSS
使用CSS自定义属性实现骨架屏效果
Jun 21 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
php策略模式简单示例分析【区别于工厂模式】
2019/09/25 PHP
AJAX异步从优酷专辑中采集所有视频及信息(JavaScript代码)
2010/11/20 Javascript
AngularJS的表单使用详解
2015/06/17 Javascript
Node.js事件驱动
2015/06/18 Javascript
全面解析Bootstrap中scrollspy(滚动监听)的使用方法
2016/06/06 Javascript
微信JS-SDK坐标位置如何转换为百度地图坐标
2016/07/04 Javascript
jQuery获取attr()与prop()属性值的方法及区别介绍
2016/07/06 Javascript
div实现自适应高度的textarea实现angular双向绑定
2017/01/08 Javascript
RequireJS 依赖关系的实例(推荐)
2017/01/21 Javascript
详解webpack异步加载业务模块
2017/06/23 Javascript
动态创建Angular组件实现popup弹窗功能
2017/09/15 Javascript
JS实现图片放大镜插件详解
2017/11/06 Javascript
使用selenium抓取淘宝的商品信息实例
2018/02/06 Javascript
Vue组件生命周期运行原理解析
2020/11/25 Vue.js
[02:08:58]2014 DOTA2国际邀请赛中国区预选赛 Ne VS CIS
2014/05/22 DOTA
[08:40]Navi Vs Newbee
2018/06/07 DOTA
python绘图库Matplotlib的安装
2014/07/03 Python
在Python中使用cookielib和urllib2配合PyQuery抓取网页信息
2015/04/25 Python
基于Python os模块常用命令介绍
2017/11/03 Python
Python callable()函数用法实例分析
2018/03/17 Python
用python实现将数组元素按从小到大的顺序排列方法
2018/07/02 Python
Python绘制热力图示例
2019/09/27 Python
使用Python制作缩放自如的圣诞老人(圣诞树)
2019/12/25 Python
纯CSS实现聊天框小尖角、气泡效果
2014/04/04 HTML / CSS
Css3新特性应用之视觉效果实例
2016/12/12 HTML / CSS
详解HTML5之pushstate、popstate操作history,无刷新改变当前url
2017/03/15 HTML / CSS
美国专注于健康商品的网站:eVitamins
2017/01/23 全球购物
优秀高中生事迹材料
2014/02/11 职场文书
行政人事岗位职责
2014/03/17 职场文书
计算机专业毕业生自荐书
2014/06/02 职场文书
小学雷锋月活动总结
2014/07/03 职场文书
公务员考察材料范文
2014/12/23 职场文书
中国世界遗产导游词
2015/02/13 职场文书
动画电影《龙珠超 超级英雄》延期上映
2022/03/20 日漫
Windows Server 2012 修改远程默认端口3389的方法
2022/04/28 Servers
python实现学生信息管理系统(面向对象)
2022/06/05 Python