【CSS3】CSS3 动画 ⑤ ( 动画速度曲线 | 设置动画步长 | 动画匀速执行 | 动画分 2 步执行 | 使用动画步长实现打字机效果 )

这篇具有很好参考价值的文章主要介绍了【CSS3】CSS3 动画 ⑤ ( 动画速度曲线 | 设置动画步长 | 动画匀速执行 | 动画分 2 步执行 | 使用动画步长实现打字机效果 )。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。





一、动画速度曲线设置



CSS3 样式中 , 设置 动画速度曲线 的属性是 animation-timing-function 属性 ;

animation-timing-function 属性定义了动画从 初始 CSS 样式 变为 结束状态 时 所消耗的时间 ;


animation-timing-function 属性常用 属性值 如下 :

  • linear : 动画在整个执行过程中速度都是匀速的 ;
  • ease : 默认属性值 , 动画首先以低速开始 , 然后加速执行 , 最后在执行结束前降低速度 ;
  • ease-in : 动画以低速开始 ;
  • ease-out : 动画以低速结束 ;
  • ease-in-out : 动画以低速开始和结束 ;
  • cubic-bezier(n,n,n,n) : 自定义 速度曲线 , 贝塞尔曲线 , 该属性值的 四个参数 用于定义贝塞尔曲线的控制点 ;
  • steps(n) : 指定动画的步长 , 默认情况下是无级变速 , 也就是动画以微小趋势运行 , 整个过程动画可能变换几十次到数百次不等 , 如果设置为 3 步长 , 动画只会变换 3 次 ;

令动画 低速开始 加速执行 低速结束 , 可以对执行动画的 标签元素 设置如下属性 :

animation-timing-function: ease-in-out;

如果想要 自定义 动画的 速度变化 贝塞尔曲线 , 可以使用如下 属性设置 :

animation-timing-function: cubic-bezier(0.1, 0.7, 1.0, 0.1);

设置 steps(n) 属性值 , 可以将动画的执行步骤拆解成 n 个步骤 , 借助该属性 , 可以实现很多特殊效果 ;





二、代码示例 - 动画速度曲线设置




1、代码示例 - 动画匀速执行


核心代码是 :

animation: progress 4s linear forwards;

该动画的名称是 progress , 执行一个周期是 4 秒 , 动画执行速度线性增加 ;


代码示例 :

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <!-- 设置 meta 视口标签 -->
    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no,maximum-scale=1.0,minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>动画速度曲线 | 设置动画步长</title>
    <style>
        div {
            width: 0px;
            height: 50px;
            background-color: pink;
            /* 设置动画属性 */
            animation: progress 4s linear forwards;
        }
        
        @keyframes progress {
            /* 设置动画节点 */
            0% {
                /* 开始时盒子模型宽度 0 */
                width: 0;
            }
            100% {
                /* 执行结束后盒子模型宽度 200 */
                width: 200px;
            }
        }
    </style>
</head>

<body>
    <div></div>
</body>

</html>

执行效果 : 下面的 div 盒子模型 , 从 0 宽度逐渐增加到 200 像素宽度 ;
【CSS3】CSS3 动画 ⑤ ( 动画速度曲线 | 设置动画步长 | 动画匀速执行 | 动画分 2 步执行 | 使用动画步长实现打字机效果 ),CSS,css3,前端,css,原力计划


2、代码示例 - 动画分 2 步执行


核心代码是 :

animation: progress 4s steps(2) forwards;

该动画的名称是 progress , 执行一个周期是 4 秒 , 动画执行时分两步完成 ;


代码示例 :

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <!-- 设置 meta 视口标签 -->
    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no,maximum-scale=1.0,minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>动画速度曲线 | 设置动画步长</title>
    <style>
        div {
            width: 0px;
            height: 50px;
            background-color: pink;
            /* 设置动画属性 */
            animation: progress 4s steps(2) forwards;
        }
        
        @keyframes progress {
            /* 设置动画节点 */
            0% {
                /* 开始时盒子模型宽度 0 */
                width: 0;
            }
            100% {
                /* 执行结束后盒子模型宽度 200 */
                width: 200px;
            }
        }
    </style>
</head>

<body>
    <div></div>
</body>

</html>

执行效果 :

  • 动画开始执行时 , 没有任何效果 ;
    【CSS3】CSS3 动画 ⑤ ( 动画速度曲线 | 设置动画步长 | 动画匀速执行 | 动画分 2 步执行 | 使用动画步长实现打字机效果 ),CSS,css3,前端,css,原力计划
  • 执行 2 秒后 , 执行第一步 , 盒子模型变为 100 像素 ;

【CSS3】CSS3 动画 ⑤ ( 动画速度曲线 | 设置动画步长 | 动画匀速执行 | 动画分 2 步执行 | 使用动画步长实现打字机效果 ),CSS,css3,前端,css,原力计划

  • 执行 4 秒后 , 执行结束 , 盒子模型变为 200 像素 ;

【CSS3】CSS3 动画 ⑤ ( 动画速度曲线 | 设置动画步长 | 动画匀速执行 | 动画分 2 步执行 | 使用动画步长实现打字机效果 ),CSS,css3,前端,css,原力计划





三、代码示例 - 使用动画步长实现打字机效果



实现思路 :

在盒子模型中 , 设置 10 个文字 :

<div>实现一个打字机效果吧</div>

动画的效果是 盒子模型 从 0 到 200 像素 , 每个文字 20 像素 ;

        @keyframes progress {
            /* 设置动画节点 */
            0% {
                /* 开始时盒子模型宽度 0 */
                width: 0;
            }
            100% {
                /* 执行结束后盒子模型宽度 200 */
                width: 200px;
            }
        }

设置每个文字 20 像素 , 动画分为 10 步 , 盒子模型每次增加 10 像素宽度 , 正好可以将动画显示出来 ;

使用 white-space: nowrap; 样式 , 可以强行将文字设置为 一行 , 使文字不换行 ;

使用 overflow: hidden; 可以隐藏 盒子模型 中 边界之外的内容 ;

设置 行高 = 高度 , 可以令文本垂直居中 ;

        div {
            width: 0px;
            height: 30px;
            /* 行高 = 高度 -> 垂直居中 */
            line-height: 30px;
            background-color: pink;
            /* 设置动画属性 */
            animation: progress 4s steps(10) forwards;
            /* 文字大小设置为 20 像素 , 正好 10 个字 200 像素 */
            font-size: 20px;
            /* 强制令文字显示在一行 */
            white-space: nowrap;
            /* 隐藏盒子模型边界外的内容 */
            overflow: hidden;
        }

代码示例 :

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <!-- 设置 meta 视口标签 -->
    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no,maximum-scale=1.0,minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>动画速度曲线 | 设置动画步长</title>
    <style>
        div {
            width: 0px;
            height: 30px;
            /* 行高 = 高度 -> 垂直居中 */
            line-height: 30px;
            background-color: pink;
            /* 设置动画属性 */
            animation: progress 4s steps(10) forwards;
            /* 文字大小设置为 20 像素 , 正好 10 个字 200 像素 */
            font-size: 20px;
            /* 强制令文字显示在一行 */
            white-space: nowrap;
            /* 隐藏盒子模型边界外的内容 */
            overflow: hidden;
        }
        
        @keyframes progress {
            /* 设置动画节点 */
            0% {
                /* 开始时盒子模型宽度 0 */
                width: 0;
            }
            100% {
                /* 执行结束后盒子模型宽度 200 */
                width: 200px;
            }
        }
    </style>
</head>

<body>
    <div>实现一个打字机效果吧</div>
</body>

</html>

执行结果 :

执行时 , 每个字逐个出现 ;
【CSS3】CSS3 动画 ⑤ ( 动画速度曲线 | 设置动画步长 | 动画匀速执行 | 动画分 2 步执行 | 使用动画步长实现打字机效果 ),CSS,css3,前端,css,原力计划
执行完毕后 , 所有的文本都出现 ;

【CSS3】CSS3 动画 ⑤ ( 动画速度曲线 | 设置动画步长 | 动画匀速执行 | 动画分 2 步执行 | 使用动画步长实现打字机效果 ),CSS,css3,前端,css,原力计划文章来源地址https://www.toymoban.com/news/detail-638420.html

到了这里,关于【CSS3】CSS3 动画 ⑤ ( 动画速度曲线 | 设置动画步长 | 动画匀速执行 | 动画分 2 步执行 | 使用动画步长实现打字机效果 )的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • CSS3 -- @keyframes动画

    CSS动画可以为网站添加生动的交互效果。在CSS3中,@keyframes规则被引入,用于定义CSS动画的关键帧和属性值。@keyframes规则提供了一个非常强大和灵活的工具,允许开发人员控制动画的细节,以创建各种类型的动画效果。在本文中,我们将深入探讨@keyframes规则,了解如何使用它

    2024年02月16日
    浏览(43)
  • CSS3动画效果详解

    在CSS3中,animation属性用于实现元素的动画。 animation属性跟transition属性在功能实现上是非常相似的,都是通过改变元素的属性值来实现动画效果。但是,这两者实际上有着本质的区别 对于transition属性来说,它只能将元素的某一个属性从一个属性值过渡到另一个属性值 对于

    2024年01月21日
    浏览(53)
  • CSS3实现动画加载效果

    2024年02月07日
    浏览(61)
  • CSS3D+动画

    1.css3D 给父元素设置 perspective:景深:近大远小的效果900-1200px这个范围内 transform-style:是否设置3D环境 flat 2D环境 默认值 perserve-3D环境 3D功能函数 1.位移: translateZ() translate3D(x,y,z) 2.3D旋转 属性: rotateX() rotateY() rotateZ() rotate3D(x,y,z,deg) x,y,z:0-1 0不旋转 deg:旋转的角度 3.3D缩放 缩放:

    2024年02月11日
    浏览(36)
  • CSS3制作3D爱心动画

    1、什么是CSS     css,即层叠样式表的简称,是一种标记语言,有浏览器解释执行用来使页面变得更美观。 2、选择器     css3中新增了一些选择器,如下: 3、新样式 边框   css3 新增了三个边框属性,分别是: border-radius :创建圆角边框 box-shadow :为元素添加阴影 border-imag

    2024年02月05日
    浏览(53)
  • CSS3过渡与动画,2D与3D

    该属性用于定义元素边框的背景图像 语法: border-image:none | url(img) imagesection [/imagewidth] imaghandling 其中imagesection定义用于边框不同部分的图像部分。imagesection值可以由图像上的4条分隔线组成,每条线以像素或者百分比为度量。 imaghandling可以定义的三个,用于控制分隔线

    2024年02月03日
    浏览(45)
  • CSS3 如何实现飘动的云朵动画

    目录 一、动画的定义 二、动画的基本使用         2.1.-animation-name         2.2.-animation-duration         2.3.-animation-timing-function         2.4.-animation-delay         2.5.-animation-iteration-count                 2.6.-animation-direction         2.7.-animation-fill-mod

    2024年02月08日
    浏览(54)
  • CSS动画中的贝塞尔曲线

    最近在学习CSS动画,其中动画时间函数的部分涉及到了 贝塞尔曲线 的相关知识。对于这部分知识,之前一直没有好好学习过,正好借着这个机会学习下。 首先简单介绍下贝塞尔曲线。 贝塞尔曲线(Bézier curve),又称贝兹曲线或贝济埃曲线,是应用于二维图形应用程序的数学曲

    2024年02月09日
    浏览(69)
  • 【JAVA】CSS3:3D、过渡、动画、布局、伸缩盒

    透视点位置:观察者位置 在2D位移基础上,可以让元素沿z轴移动 cubic-bezier(.17,.67,.83,.67) ✿ cubic-bezier.com 贝塞尔曲线: cubic-bezier(.17,.67,.83,.67) ✿ cubic-bezier.com 效果:鼠标悬浮,图片旋转,字体出现,背景模糊 鼠标悬浮前:  鼠标悬浮后: 帧:一个视频包含多个画面,每一个

    2024年03月22日
    浏览(41)
  • css3动画基础详解(@keyframes和animation)

    动画是使元素从一种样式逐渐变化为另外一种效果,CSS3动画的生成,主要依赖 @keyframes 定义动画, animation 执行动画。 @keyframes 通过  @keyframes  规则创建动画。 @keyframes keyframes-name {keyframes-selector {css-styles;}} keyframes-name  帧列表的名称。 名称必须符合 CSS 语法中对标识符的定

    2024年02月04日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包