iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >如何在CSS中使用keyframes动画属性
  • 452
分享到

如何在CSS中使用keyframes动画属性

2023-06-08 07:06:39 452人浏览 八月长安
摘要

这篇文章给大家介绍如何在CSS中使用keyframes动画属性,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1.先来一个最基础的CSS部分定义一个最基础的位移动画,4s完成,线性速度case-关键帧演示1-基础 。@k

这篇文章给大家介绍如何在CSS中使用keyframes动画属性,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

1.先来一个最基础的

CSS部分定义一个最基础的位移动画,4s完成,线性速度case-关键帧演示1-基础 。

@keyframes  move{0%{transfORM:translateX(0)}100%{transform:translateX(800px)}}.c_move{animation:move 4s linear both} 

这个发挥作用主要是在定义了无限循环动画时。

如何在CSS中使用keyframes动画属性

基础的设置自然带来毫无特色平淡无奇的基础动效。

2.延迟开始

下面,我想让圆圈在起点停留2s后再开始移动,第一反应是用动画属性中的延迟 animation-delay ,把时间定义成2s,行不行?行,但这里用个更高级的方法。我们在定义关键帧时用了大量的百分比,这里百分比值代表的是 时间节点 ,也就是说 关键帧定义的是不同时间节点的状态属性。 下面再来看一张图,这张图一定不要和上面的路径演示弄混了,这是一张动画的时间轴的图。

如何在CSS中使用keyframes动画属性

让圆圈在起点停留2s那是表象说法,转化成我们的动画定义语言,就是在4s动画周期内前2s是没有动画效果的。所以,动画规则我来这样定义:

@keyframes  move{0%{transform:translateX(0)}50%{transform:translateX(0px)}100%{transform:translateX(800px)}}

对照上面时间轴的分割来看,更容易理解一些,这样就得到了在起点处停留2s后,在后面的2s完成整个动画的动效。这里亦或用一种更简单的写法为 0%, 50%{transform:translateX(0)} ,属性相同的可以合并在一起,用逗号分隔。 case-关键帧演示-延迟开始

如何在CSS中使用keyframes动画属性 

3.提前结束

有了延迟开始的基础,提前结束是不是已经可以类推出来了。为了区分一下,我让动画提前3s结束。照例先画出时间轴的解析。

如何在CSS中使用keyframes动画属性

对应关键帧的定义如下:

@keyframes  move{0%{transform:translateX(0)}25%,100%{transform:translateX(800px)}}

最终结果圆圈一定是4倍速度全力以赴加速完成旅程(毕竟要把原来4s的时间压缩到1s完成),然后怡然自得的在终点等待整个动画时间结束。 case-关键帧演示-提前结束

如何在CSS中使用keyframes动画属性 

4.中途停留

那些已准备妥当的驿站,现在可以发挥作用了,我希望圆圈这样运动:整个旅程中仅在第一个驿站(移动200px后)停留1s,稍作整顿。映射到时间轴上是什么样子的呢?

如何在CSS中使用keyframes动画属性

这里,出现了一些看上去很奇怪的数字,需要解释一下。先来明确一点,我们分析时间轴,最终要获得是时间节点。针对我们的设计,停留1s,那运动的时间就是3s,而这3s的时间是分成两部分的,第一部分是前200px,第二部分是后600px,因为是线性匀速,所以当时间轴分成A+B+C三部分后,在A时间段跑完200px,在C时间段跑完600px,计算出A对应的时间0.75s,C对应的时间2.25s,B的时间是停留的时间1s,再换算成对应的百分比,这就是最终中间两个时间节点的计算方法。时间轴解析完成后,CSS部分的定义手到擒来:

@keyframes  move{0%{transform:translateX(0)}18.75%, 43.75%{transform:translateX(200px)} 100%{transform:translateX(800px)}}

case-关键帧演示-第一个驿站停留1s

如何在CSS中使用keyframes动画属性 

5.像虫洞一样跳跃式前进

增加些难度,在中途任意点作停留已经不是什么问题了,停留在一个点和多个点是相同的思路,现在,我让圆圈跳跃式前进,进入第一个驿站后,停留1s,跨过第二个驿站,直接进入第三个驿站,停留1s,完成旅程。根据空间折叠原理,200和600处发生了跃迁。分析时间轴:

如何在CSS中使用keyframes动画属性

重点看红色的部分,那里就是跃迁的时间点,在无时间变化的情况下位移了200px。按照时间轴的分析,CSS部分理论上是这样的:

@keyframes  move{0%{transform:translateX(0)}25%,50%{transform:translateX(200px)}50%,75%{transform:translateX(600px)}100%{transform:translateX(800px)}}

效果如何呢?

如何在CSS中使用keyframes动画属性

完全和想象的不一样,问题出在哪里呢?就是时间的50%节点处,浏览器可不知道你真实的想法,它只会以为你定义错了,当有两个相同的50%的关键帧的不同属性值定义时,会自动忽略第一个,而以最后一个有效值为准,所以上面的定义相当于给浏览器传达的讯息是这样的:

@keyframes  move{0%{transform:translateX(0)}25%{transform:translateX(200px)}50%,75%{transform:translateX(600px)} 100%{transform:translateX(800px)}}

这就是为什么看上去是到达第一驿站后加速跑向第三个驿站,然后停留后再完成剩下的路程的原因。现在游戏越来越有意思了,或许我们可以试试 骗过浏览器 。既然同样的时间点只允许定义一个属性值,那如果我在紧邻的旁边增加一个时间点来定义,会发生什么?

@keyframes  move{0%{transform:translateX(0)}25%,50%{transform:translateX(200px)}50.0001%,75%{transform:translateX(600px)} 100%{transform:translateX(800px)}}

看上面出现的**50.0001%**这个时间点,猜猜发生了什么?这就是上面所谓的“骗过浏览器”的方法了。在50%→50.0001%这个区间,发生了400px(200→600)的位移变化。所以就得到了下面这种效果:case-关键帧演示-跃迁

如何在CSS中使用keyframes动画属性

关于如何在CSS中使用keyframes动画属性就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

--结束END--

本文标题: 如何在CSS中使用keyframes动画属性

本文链接: https://www.lsjlt.com/news/252585.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何在CSS中使用keyframes动画属性
    这篇文章给大家介绍如何在CSS中使用keyframes动画属性,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1.先来一个最基础的CSS部分定义一个最基础的位移动画,4s完成,线性速度case-关键帧演示1-基础 。@k...
    99+
    2023-06-08
  • CSS 动画属性进阶:keyframes 和 animation
    CSS 动画是网页设计中重要的一部分,它可以通过展示连续的图像来营造出流动的效果,增加页面的视觉吸引力。在CSS中,我们可以使用多种动画属性来创建各种效果。本文将重点介绍两个核心的动画属性:keyframes 和 animation,并提供...
    99+
    2023-10-21
    keyframes 关键词:CSS 动画属性
  • CSS 动画属性探索:keyframes 和 animation
    引言:CSS 动画已经成为现代网页设计的重要组成部分。它可以为网页增添生动的交互效果,提升用户体验。在 CSS 中,我们可以利用 keyframes 和 animation 这两个属性来创建各种炫酷的动画效果。本文将带大家深入探索这两个属性...
    99+
    2023-10-21
    CSS动画 keyframes animation
  • 如何在CSS3中使用Transition动画属性
    这篇文章给大家介绍如何在CSS3中使用Transition动画属性,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。transition属性的值包括以下四个: •transition-prope...
    99+
    2023-06-08
  • css中如何实现动画属性
    这篇文章主要介绍了css中如何实现动画属性,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。   一、css动画(animation)属性可以...
    99+
    2024-04-02
  • css动画属性怎么用
    这篇文章给大家分享的是有关css动画属性怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1 transition(过渡)  使用语法:transition: property...
    99+
    2024-04-02
  • 如何在css中使用content属性
    如何在css中使用content属性?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。content属性一般用于::before、::after伪元素中,用于呈现伪元素的内容。平时...
    99+
    2023-06-08
  • 如何在CSS中使用outline属性
    这篇文章给大家介绍如何在CSS中使用outline属性,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。轮廓(outline)是绘制于元素周围的一条线,位于边框边缘的外围,可起到突出元素的作用。轮廓(outline)属性指...
    99+
    2023-06-08
  • 如何在css中使用position属性
    如何在css中使用position属性?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。position 属性值的含义:static元素框正常生成。块级元素生成一个...
    99+
    2023-06-08
  • 如何在css中使用border属性
    今天就跟大家聊聊有关如何在css中使用border属性,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一、CSS边框基础知识CSS 边框即CSS border是控制对象的边框边线宽度、...
    99+
    2023-06-08
  • 如何在css中使用transition属性
    这篇文章给大家介绍如何在css中使用transition属性,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。css的三种引入方式1.行内样式,最直接最简单的一种,直接对HTML标签使用style=""...
    99+
    2023-06-08
  • 如何在css中使用display:block;属性
    本篇文章为大家展示了如何在css中使用display:block;属性,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。对所有的块元素都没有意义,块元素的dispaly属性默认值为block,没必要再显...
    99+
    2023-06-09
  • 如何在css中使用display:box 属性
    本篇文章为大家展示了如何在css中使用display:box 属性,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、display:box;  在元素上设置该属性,可使其子代排列在同一水平上,类似d...
    99+
    2023-06-08
  • CSS中如何使用浮动属性float
    这期内容当中小编将会给大家带来有关CSS中如何使用浮动属性float,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。CSS浮动请看下图,当把框1向右浮动时,它脱离文档流并且...
    99+
    2024-04-02
  • CSS中如何使用float浮动属性
    CSS中如何使用float浮动属性,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。CSS浮动--float属性用法解析1.什么是浮动?浮动是 C...
    99+
    2024-04-02
  • 怎么在CSS3中使用Animation动画属性
    本篇文章为大家展示了怎么在CSS3中使用Animation动画属性,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。要使用animation动画,先要熟悉一下keyframes,Keyframes的语法...
    99+
    2023-06-08
  • 如何在css中使用line-height属性
    这期内容当中小编将会给大家带来有关如何在css中使用line-height属性,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、line-height语法line-height属性的具体定义列表如下:语法...
    99+
    2023-06-08
  • 如何在CSS中使用pointer-events属性
    今天就跟大家聊聊有关如何在CSS中使用pointer-events属性,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。在关闭弹层时,以fadeOut动画效果为例,我这里是利用opaci...
    99+
    2023-06-08
  • css中调用动画animation-name属性怎么用
    这篇文章主要介绍css中调用动画animation-name属性怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!   在实现动画效果之前,我们要先了解一下animation-n...
    99+
    2024-04-02
  • CSS中padding 属性如何使用
    本篇文章给大家分享的是有关CSS中padding 属性如何使用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。CSS padding 属性定义和...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作