CSS3(三)Animation 入门详解

CSS3(三)Animation 入门详解Animation 前言好的前端工程师 会更注重用户的体验和交互 那么动画就是将我们的静态页面 变成具有灵动性 为我们的界面添加个性的一种方式 下面是七喜的官方主页 它就是很好的富交互样例 鼠标移动到导航栏 就会播放多种动效 给用户一种酷炫的体验 我觉得用户体验 才是前端工程师更加关注的问题 而不是一味追求 Javascript 的编码技能 七喜官方网站 A

Animation


前言

个人github: https://github.com/robbiemie 欢迎star&follow ~

好的前端工程师,会更注重用户的体验和交互。那么动画就是将我们的静态页面,变成具有灵动性,为我们的界面添加个性的一种方式。

下面是七喜的官方主页,它就是很好的富交互样例。鼠标移动到导航栏,就会播放多种动效,给用户一种酷炫的体验。我觉得用户体验,才是前端工程师更加关注的问题,而不是一味追求Javascript的编码技能。

这里写图片描述
七喜官方网站

个人网站

Github 源码(欢迎Fork~~)


Animation 组成

CSS3 Animation 是由三部分组成。


1.关键帧(@keyframes)
  • 关键帧(keyframes) – 定义动画在不同阶段的状态。
  • 动画属性(properties) – 决定动画的播放时长,播放次数,以及用何种函数式去播放动画等。(可以类比音视频播放器)
  • css属性 – 就是css元素不同关键帧下的状态。
  • 关键帧主要分为3个阶段,0%、50%、100%。
  • 动画播放时长为6s、循环播放(infinite)、以linear方式进行播放。
  • 修改的元素属性为margin-top
.list div:first-child { 
       animation: dropdown 8s linear infinite; } @keyframes dropdown { 
       0% { 
       margin-top: 0px;} / 暂停效果 */ 10% { 
       margin-top: 0px;} 50% { 
       margin-top: -100px;} 60% { 
       margin-top: -100px;} 90% { 
       margin-top: -200px;} 100% { 
       margin-top: -200px;} } 

这里写图片描述


需要注意!当属性的个数不确定时:
 @keyframes dropdown { 
        0% { 
        top: 0; } 30% { 
        top: 300px; } 50% { 
        top: 150px; } 70% { 
        top: 300px; } 80% { 
        top: 0px; left:-200px;} 100% { 
        top: 0px; } } 

这里写图片描述

 @keyframes dropdown { 
        0% { 
        top: 0; left:0px;} 30% { 
        top: 300px; left:0px;} 50% { 
        top: 150px; left:0px;} 70% { 
        top: 300px; left:0px;} 80% { 
        top: 0px; left:-200px;} 100% { 
        top: 0px; left:0px;} } 

这里写图片描述


语法

@keyframes keyframes-name {

[ [ from | to |
<百分比>
] [, from | to |
<百分比>
]* block ]*

}
keyframes-name
帧列表的名称。 名称必须符合 CSS 语法中对标识符的定义。
from
等效于 0%.
to
等效于 100%.



















2.动画属性
  • 指定播放的元素
  • 定义播放信息的配置
    这里写图片描述

动画源码

简写属性形式:

MDN参考文档

1.时间函数(animation-timing-function)

animation-timing-function属性定义了动画的播放速度曲线。
可选配置参数为:
ease
ease-in
ease-out
ease-in-out
linear
cubic-bezier(number, number, number, number)
这里写图片描述
动画源码
默认值,如果没有显示写调用的函数,则默认为ease。




















2.动画方向(animation-direction)

animation-direction属性表示CSS动画是否反向播放。
可选配置参数为:

single-animation-direction = normal | reverse | alternate | alternate-reverse

  • animation-direction: normal 正序播放
  • animation-direction: reverse 倒序播放
  • animation-direction: alternate 交替播放
  • animation-direction: alternate-reverse 反向交替播放
  • animation-direction: normal, reverse
  • animation-direction: alternate, reverse, normal

这里写图片描述

3.动画延迟(animation-delay)

animation-delay属性定义动画是从何时开始播放,即动画应用在元素上的到动画开始的这段时间的长度。
默认值0s,表示动画在该元素上后立即开始执行。
该值以秒(s)或者毫秒(ms)为单位。




4.动画迭代次数(animation-iteration-count)

animation-iteration-count该属性就是定义我们的动画播放的次数。次数可以是1次或者无限循环。
默认值只播放一次。

single-animation-iteration-count = infinite | number

5.动画填充模式(animation-fill-mode)

animation-fill-mode是指给定动画播放前后应用元素的样式。

single-animation-fill-mode = none | forwards | backwards | both

  • animation-fill-mode: none 动画执行前后不改变任何样式
  • animation-fill-mode: forwards 保持目标动画最后一帧的样式
  • animation-fill-mode: backwards 保持目标动画第一帧的样式
  • animation-fill-mode: both 动画将会执行 forwards 和 backwards 执行的动作。
6.动画播放状态(animation-timing-function)

animation-play-state: 定义动画是否运行或者暂停。可以确定查询它来确定动画是否运行。
默认值为running

single-animation-timing-function = running | paused

  • running 动画正常播放
  • paused 动画暂停播放

个人github: https://github.com/robbiemie 欢迎star&follow ~

相关链接

SVG动画实践

动画实践

分享一些CSS3动效网站:

这里写图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/201241.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月20日 上午9:46
下一篇 2026年3月20日 上午9:46


相关推荐

  • windows/linux环境python3出现pip is configured with locations that require TLS/SSL, however the..不可用的解决方法[通俗易懂]

    windows/linux环境python3出现pip is configured with locations that require TLS/SSL, however the..不可用的解决方法[通俗易懂]linux环境下首先明确问题出现原因,是因为openssl版本过低或者不存在so: 查看openssl安装包,发现缺少openssl-devel包 [root@localhost~]#rpm-aq|grepopenssl openssl-0.9.8e-20.el5 openssl-0.9.8e-20.el5 [root@localhost~]# yu…

    2025年7月13日
    6
  • 从零学Java(3)之第一个实例HelloWorld

    从零学Java(3)之第一个实例HelloWorld引言 小 AD 小明哥 我 jdk 和 eclipse 都安装好了 不知道干啥用 你这也不行啊 我刚玩王者的时候 有新手训练营的 我很容易就知道改怎么玩了 明世隐 别急啊 就跟你着急送人头似的 你说你一个小鲁班 闪现到凯爹脸上干嘛 小 AD 明哥你太过分了 在这样我跑路了哈 人家诚心学习来的 明世隐 你看你还说诚心来的 一说你就说要跑路 小 AD 你太伤我自尊了 明世隐 没事哈 哥我说这玩 你有不是打野 我只跟打野过不去 小 AD 那你说怎么办 我这人做事也是急性子 对面打野敢杀我

    2026年3月19日
    1
  • Docker搭建WordPress博客

    Docker搭建Wordpress博客

    2021年5月30日
    125
  • 本地的html源文件,本地书源导入教程

    本地的html源文件,本地书源导入教程本地书源导入教程免贵姓操•2018年05月05日请注意,本文编写于1143天前,最后修改于96天前,其中某些信息可能已经过时。0×1.单个书源导入操作步骤:复制下面的书源代码,在[书源管理]点击“+”号,然后点击右上角的3个点,选择[粘贴书源],再点击[保存],然后书源前面勾选启用即可。{“bookSourceGroup”:””,”bookSourceName”…

    2022年6月15日
    56
  • python语言与c语言java的区别_c语言和java有什么区别

    python语言与c语言java的区别_c语言和java有什么区别区别 1 单文件的编译时间 java 比 C 语言快 2 C 语言可以直接操作内存 java 不能直接操作 3 C 语言可以封装动态库 java 不行 4 C 语言有指针 java 没有指针 5 C 语言可以直接操作串口 java 需要第三方 jar 包支持等等 本篇文章主要给大家介绍 c 语言和 java 的区别 希望对需要的朋友有所帮助 c 语言和 java 的区别 1 语法不同 2 单文件的编译时间 java 比 C 语言快 3 C 语言可以

    2026年3月17日
    2
  • Unity Odin从入门到精通(三):静态检查器详解

    Unity Odin从入门到精通(三):静态检查器详解前言:开发者可以使用静态检查器来选择项目工程、Unity引擎、.Net框架中所有的类型,并查看其所有的静态成员。打开静态检查器:在Unity的菜单栏中选择【Tools->OdinInspector->StaticInspector】菜单项来打开静态检查器。如下图所示:查看静态检查器的源码:首先在Rider当中切换到Assemblies视图。接着在该视图的列表当中选择Sirenix.OdinInspector.Editor程序集。然后从该程序集的列表当中选择Sirenix.Odi

    2022年7月21日
    15

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号