使用css3如何实现一个文字打印效果

news2024/9/23 9:21:08

前言

在很多网站首页介绍页里,为了吸引用户,暂留更长时间,使用了一些css3动画的

示例效果

3fc2b4ced6450e3a6e3da3b604f4af05.gif
文字打印.gif

实现这个动画原理

想要实现这个动画,改变元素的宽度,结合动画css3关键帧实现

具体代码如下所示

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>css3实现打字机效果</title>
<style>
.example-css3dayin {
        text-align: center;
        font-weight: 700;
        font-size: 60px;
        line-height: 79px;
        background: linear-gradient( 270deg, rgba(198, 141, 255, 0.9) 8.92%, #5685ff 46.17%, #48d6ff 92.17% );
        -webkit-background-clip: text;
        -webkit-text-fill-color: transparent;
        background-clip: text;
        text-fill-color: transparent;
        white-space: nowrap;
        animation: animateText 4.7s steps(8) infinite;
        -webkit-animation: animateText 4.7s steps(8) infinite;
}

@-webkit-keyframes animateText {
        0% {
            width: 0;
        }
        35% {
            width: 8.1em;
        }
        75% {
            width: 8.1em;
        }
        100% {
            width: 0;
        }
   }
    
    @keyframes animateText {
        0% {
            width: 0;
        }
        35% {
            width: 8.1em;
        }
        75% {
            width: 8.1em;
        }
        100% {
            width: 0;
        }
   }      

    </style>
  </head>
  <body>
       <p class="example-css3dayin">AI智能,引领未来</p>
  </body>
</html>

效果当中的关键帧动画

animation动画通过设置多个节点来精确控制一个或者一组动画,常用来实现复杂的动画效果;

相对过渡动画,animation动画可以实现更多变化,更多控制,实现自动播放等效果

制作animation动画需要两个步骤

第一步,需要先定义动画,0%的时候我们一般建议什么也不要设置,默认就是初始的样式

@keyframes 动画名称 {

    0% {

        开始动画

    }

    100% {

        结束动画

    }

}

第二步,定义了的动画需要调用才能使用生效,哪一个盒子需要调用动画就设置以下两个必须的属性

animation-name: 动画名称;

animation-duration: 持续时间(单位是s)

例如上面的动画

.example-css3dayin {
        // 上面省略
        animation: animateText 4.7s steps(8) infinite;
        -webkit-animation: animateText 4.7s steps(8) infinite;
}

@-webkit-keyframes animateText {
        0% {
            width: 0;
        }
        35% {
            width: 8.1em;
        }
        75% {
            width: 8.1em;
        }
        100% {
            width: 0;
        }
   }
    
    @keyframes animateText {
        0% {
            width: 0;
        }
        35% {
            width: 8.1em;
        }
        75% {
            width: 8.1em;
        }
        100% {
            width: 0;
        }
   }

0%是动画的开始,100%是动画的完成,完成整个动画过程的规则就是动画序列;

动画定义的是也可以用fromto来定义,的等同于0%100%

@keyframes中规定某项css样式,将当前的样式逐渐改为新的样式的过程,称之为动画,我们可以改变任意的样式,改变任意的次数

CSS3动画常见属性

  • @keyframes :规定动画

  • animation: 所有动画属性的简写属性,除了 animation-play-state 属性。

  • animation-name:规定 @keyframes 动画的名称。(必须有)。

  • animation-duration: 规定动画完成一个周期所花费的秒或毫秒。默认是 0。(必须有)。

  • animation-timing-function: 规定动画的速度曲线。默认是 “ease”。

  • animation-delay: 规定动画何时开始。默认是 0。必须写单位s。

  • animation-iteration-count: 规定动画被播放的次数。默认是 1。循环是infinite

  • animation-direction: 规定动画是否在下一周期逆向地播放。默认是 “normal”。alternate逆向

  • animation-play-state: 规定动画是否正在运行或暂停。默认是 “running“,暂停是paused

  • animation-fill-mode: 规定对象动画时间之外的状态。保持现状forwards,回到起始backwards

animation-timing-function

  • animation-timing-function: linear,动画从头到尾的速度是相同的。

  • animation-timing-function: ease,默认。动画以低速开始,然后加快,在结束前变慢。

  • animation-timing-function: ease-in,动画以低速开始。

  • animation-timing-function: ease-out,动画以低速结束。

  • animation-timing-function: ease-in-out,动画以低速开始和结束。

  • animation-timing-function: steps(步数设置),让动画在规定的时间里几步完成

CSS3动画简写

animation: 动画名称  持续时间  运动曲线   何时开始(延时) 播放次数  是否反向播放  动画结束后的状态
animation: name duration timing-function delay iteration-count direction fill-mode
animation: animateText 4.7s steps(8) infinite;

注意

动画简写属性的时候,动画名称和动画持续时间必须要书写,其他属性需要就书写不需要就省略,如果书写动画延时必须书写单位s,哪怕是0s也要书写

持续时间和延时的时间有先后顺序

多个动画同时调用

如果一个元素需要同时调用多个动画我们只需要用一个animation,不同的动画用英文的逗号隔开

animation: bear .3s steps(8) infinite;

 animation: move 1s ease forwards;
 // 可以合并到一起使用
 animation: bear .3s steps(8) infinite, move 3s ease forwards;

总结

css3动画是一个非常强大的属性,属性值也特别多,很多动画,看似很简单,但是一写就不会,还是要多模仿,多写相关的动画

看到了有趣的效果,就研究一下的,可以应用到公司的产品和网站当中去的

ca4ea62f5bfc300b61edb9e31dc784ec.png

120e6deb99b50aa1058ef6f32a5cd6b2.jpeg

2c17862ae9b868f52e2a99e356e8a4bd.png

f9800f1633ad42da1d159439022832b1.png

聊一聊最近几年学历大通胀的事情,以及大学几年怎么样可以节省不必要的开支

2023-06-15

d4f60877e4a387478f3ff580e5323337.jpeg

告别纺织业,大龄半路出家,前端CSS领域大神—“大漠”的封神之路

2023-06-14

638eeb0d846045c02f1fe96fa5135da9.jpeg

翟欣欣已被捕,正义也许会迟到,但不会缺席,大块人心

2023-06-10

0a328e36f84bfb84827c4988059db6e5.jpeg

IT 男遭前妻敲诈勒索自杀,六年后一审宣判了

2023-06-10

66143a4395b89e105a66e860ed45409a.jpeg

职场中有哪些不成熟的表现

2023-06-07

ad9fc2d8de1ee7cccf152f84bd94dfec.jpeg

这些高频面试问题,求职者应该怎么回答

2023-06-04

0f000afa03971cc951d9bdb83d4a12fd.jpeg

稚晖君刚拿了百度投资,估值被曝已超独角兽

2023-06-01

3cf9d8bb05fdac70d34524ea679491e2.jpeg

关于职场中的面试,要是遇到这些问题时,应该怎么回

2023-05-31

105fb0abe91315e1cc1fe9ae35a5dfea.jpeg
点击左下角查看更多

8f2154a6e945d406eb2127627ab745a1.gif

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/658900.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[元带你学: eMMC协议详解 14] 数据擦除(Erase) 详解

依JEDEC eMMC 5.1及经验辛苦整理&#xff0c;付费内容&#xff0c;禁止转载。 所在专栏 《元带你学: eMMC协议详解》 内容摘要 全文 4200字&#xff0c; 主要内容介绍了各种擦除操作概念以记用法&#xff0c;总结了不同擦除操作的区别&#xff0c; 根据不同安全级别和应用场景…

管理类联考——英语二——技巧篇——写作——A节——书信——九类书信黄金句型(背诵版)

九类书信黄金句型(背诵版) 1&#xff0e;询问信 询问信开头常用句式 l would be grateful if you could send me information about. . . l am writing to see if it is possible for you to provide me with information about. . . l am writing to ask you if/ whether. .…

15-5.自定义组件的通信

目录 1 构建组件间的父子关系 2 父向子传值-属性绑定 3 子向父传值-自定义事件 4 获取组件实例 1 构建组件间的父子关系 需要在father1.json中引入son1&#xff0c;然后再father.wxml中使用son1 2 父向子传值-属性绑定 属性绑定很像props。属性绑定只能传递普通类型…

3C - SiC、4H-SiC和6H -SiC

3C-SiC是立方结构 4H-SiC是四方结构 6H-SiC是双六方结构 它们的区别主要在于原子排列模式和配位数。3C-SiC具有最高的理论电子速度,但也有最大的杂质腐蚀痕迹。4H-SiC和6H-SiC具有更好的成本效益与设备可靠性。 3C-SiC具有立方晶系结构&#xff0c;每个硅原子被四个碳原子和四…

深度学习(22)——YOLO系列(3)

深度学习&#xff08;22&#xff09;——YOLO系列&#xff08;3&#xff09; 文章目录 深度学习&#xff08;22&#xff09;——YOLO系列&#xff08;3&#xff09;1. BOF(bag of freebies)2. Mosaic data augmentation3. 数据增强4. self-adversarial-training&#xff08;SAT…

LwIP系列(2):动态内存池管理(memp.c)详细分析

前言 我们在学习Lwip源码时&#xff0c;内存管理是绕不开的一个重点&#xff0c;我们在看相关的代码时&#xff0c;经常会看到memp_malloc 和 mem_malloc, 其中&#xff1a; &#xff08;1&#xff09;memp_malloc是从内存池中申请内存&#xff0c;具体实现在memp.c memp.h。…

木马攻击与防护

目录 一、初识Trojan木马 1.1 木马概念 1.2 木马特点 1.2.1 欺骗性 1.2.2 隐蔽性 1.2.3 非授权性 1.3 病毒和木马 1.3.1 病毒的特点 1.3.2 病毒的主要目的 1.3.3 病毒例子 1.3.4 木马程序企图 1.3.5 木马危害 1.3.6 病毒与木马的区别 1.4 木马种类 1.4.1 远程访…

机器学习之KNN算法:基于pytorch在MNIST数据集上实现数据分类预测

1 KNN算法介绍 KNN算法又叫做K近邻算法&#xff0c;是众多机器学习算法里面最基础入门的算法。KNN算法是最简单的分类算法之一&#xff0c;同时&#xff0c;它也是最常用的分类算法之一。KNN算法是有监督学习中的分类算法&#xff0c;它看起来和Kmeans相似&#xff08;Kmeans是…

CMake中的find_package(xxx REQUIRED)在windows平台怎么解

最近在编译FastDDS时&#xff0c;遇到了这个问题&#xff0c;使用CMake构建时提示找不到库。 下载的源代码不能一次性编过是最让人头疼的问题&#xff0c;这种开源代码通常都是迭代了很多版本&#xff0c;各种配置信息如果不在文档中说明&#xff0c;全靠自己去摸索确实会让人头…

idea运行java项目提示异常: java.security.InvalidKeyException: Illegal key size

idea运行java项目提示异常&#xff1a;java.lang.IllegalArgumentException: java.security.InvalidKeyException: Illegal key size 参考&#xff1a;java.security.InvalidKeyException: Illegal key size_gqltt的博客-CSDN博客 产生错误原因&#xff1a;为了数据代码在传输过…

4、做什么类型的产品经理

1、如何选择适合自己的产品经理岗位 怎么选择适合自己的这个产品经理岗位呢&#xff1f;建议大家是先考虑行业&#xff0c;再考虑其他的。 考虑行业就是说我要做什么行业的产品经理,然后再考虑在这个行业里面具体的你要做前端还是后端或者是APP端&#xff0c;还是web端&#x…

【MySQL】不就是MySQL——索引

前言 嗨&#xff01;小伙伴们周末快乐呀&#xff01;想必你们周末都在家里边呆着吧&#xff0c;外面实在是太热了&#xff01;在家里吹着空调做着自己喜欢做的事情吧&#xff01;本期我们主要学习的是MySQL中的约束条件。 目录 前言 索引概述 外键约束 1.概念 2.语法 1.添加…

【HTML界面设计(二)】说说模块、登录界面

记录很早之前写的前端界面&#xff08;具体时间有点久远&#xff09; 一、说说模板 采用 适配器&#xff08;Adapter&#xff09;原理 来设计这款说说模板&#xff0c;首先看一下完整效果 这是demo样图&#xff0c;需要通过业务需求进行修改的部分 这一部分&#xff0c;就是dem…

ch8_2_CPU的指令周期,流水线技术

1.  指令周期 指令周期是指_ CPU从主存取出一条指令, 分析指令&#xff0c;加上执行这条指令的时间。 1.1指令周期 指令周期&#xff1a; 是指cpu&#xff0c;从内存中取出指令&#xff0c;并且执行一条指令所需要的全部时间。 比如 从内存单元中&#xff0c;取出操作数&…

【使用Neo4j进行图数据可视化】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

“面试造火箭,入职拧螺丝”2023最新最全的Java开发八股文合集来了

前言 金三银四招聘旺季马上就到了&#xff0c;不知道大家是否准备好了&#xff0c;面对金三银四的招聘旺季&#xff0c;如果没有精心准备那笔者认为那是对自己不负责任&#xff1b;就我们 Java 程序员来说&#xff0c;多数的公司总体上面试都是以自我介绍项目介绍项目细节/难点…

Java016——Java输入输出语句

一、输出语句 Java常用的输出语句有三种&#xff1a; 1&#xff09;System.out.println(); 换行输出&#xff0c;输出后会自动换行。 //示例 System.out.println("Hello"); System.out.println("World");//输出 Hello World2&#xff09;System.out.pri…

LIN-物理层(收发器)

文章目录 一、显性和隐性二、LIN的供电电压说明三、LIN通道数3.1 单通道3.2 双通道3.3 四通道 一、显性和隐性 LIN总线协议规定其物理层收发器的显性&#xff08;Dominant , 逻辑 “ 0”&#xff0c;电气特性为GND(0V)&#xff09;和隐性电平&#xff08;Recessive , 逻辑 “ …

cgi接口原理(boa服务器)

CGI&#xff1a;通用网关接口&#xff08;Common Gateway Interface&#xff09;是一个Web服务器主机提供信息服务的标准接口。通过CGI接口&#xff0c;Web服务器就能够获取客户端提交的信息&#xff0c;转交给服务器端的CGI程序进行处理&#xff0c;最后返回结果给客户端。 b…

字符串概述

字符串 一、API二、字符串2.1字符串的构造方法2.2 字符串构造时的内存2.2.1 直接赋值时的内存模型2.2.2 由new创建时的内存模型 2.3 字符串的比较三、StringBuilder 一、API 目前已学过的两个API&#xff1a;Random和Scanner。 对记不清的API可以去JDK-API帮助文档进行查找。 …