原文: A Simple CSS Animation Tutorial

看到这篇文章描述简单易懂,适合初学者,于是乎就想着记录和分享一下。


(正文)

以将黄色方块转变为蓝绿色圆型作为一个开始。

Animation

上图是来自于 CSS Visual Dictionary

在上述代码中.animateClass被赋给一个元素,动画随即起效。这个class链接到animationName上,animationName需要设定@keyframes规则。这则动画设置在3秒或者3000毫秒之间。 Note: 中间过程添加的特点的动画-提供了一个曲线来描述在特定时间节点上动画的相对速度。 在接下来的内容中我们将覆盖释放过程和其他一些CSS动画属性。

动画是如何工作的

你可以运用动画在任何那些物理位置、维度、角度或者颜色可以变化的CSS属性上。使用关键帧(keyframes)实现基本动画非常简单。

CSS动画关键帧是使用@keyframes关键字指定的。关键帧让元素的状态维持在动画时间线的点上。

CSS动画引擎会自动的在关键帧之间进行插值。你所需要知道的只是设定动画起始和终点的CSS属性。然后用@keyframes animationName{...}创建一个特定名字的动画。

最后,创建一个特定的class来定义你的动画duration/direction/repeatability/ easing type...,链接到@keyframes上。下面将可视化这个过程。

CSS动画属性

8个独立的动画属性速记:

  • animation-name:
  • animation-duration
  • animation-timing-function
  • animation-delay: 动画开始前的延迟
  • animation-iteration-count: 动画出现的次数
  • animation-direction: forwards/backwards/ alternate sequence
  • animation-fill-mode: state of the animation when it is not playing
  • animation-play-state: specify whether animation is running or is paused

animation-name

.animationClass {animation-name: animationName;animation-fill-mode: normal;animation: normal 3000ms easa-in;
}@keyframes animationName {0%{}100%{}
}
复制代码

animation-duration

通常想先设置动画的长度。正如下图所示可以设置duration单位为秒或者毫秒。

也可以在动画开始前设置一个延迟。

animation-direction

动画方向可以设置normal/reverse/alternate/alternate-reverse

animation-iteration-count

动画执行一次
重复两次
重复三次

可以看到明显的问题是动画将跳转回第一帧。可以使用其他的一些动画属性来确保不会发生这种跳转。可以设置动画来循环,或者根据特定的UI动态调整其他属性。通过这种方式,你可以之设计动画的一半,并调整属性来向前或者向后播放动画,比如在鼠标进入和退出事件上。

animation-timing-function

Easing由animation-timing-function指定,能为动画增添个性。这是通过调整动画在时间线上任意给定点的速度来实现的。起始点、中间点和终点特别关键,每个Easing类型都是由贝塞尔曲线定义的。

线性
ease
ease-in
ease-out
ease-in-out
特定的cubic Bezier曲线
两个控制点

animation-fill-mode

none/forwards/backwards/both

animation-play-state

paused/running

Forward& Inverse Kinematics

... 待完善

转载于:https://juejin.im/post/5cb8896c5188253feb58533e

[译]A Simple CSS Animation Tutorial相关推荐

  1. CSS魔法堂:更丰富的前端动效by CSS Animation

    前言  在<CSS魔法堂:Transition就这么好玩>中我们了解到对于简单的补间动画,我们可以通过transition实现.那到底多简单的动画适合用transtion来实现呢?答案就是 ...

  2. css html 优化,CSS Animation性能优化

    CSS Animation是实现Web Animation方法之一,其主要通过@keyframes和animation-*或者transition来实现一些Web动效.不过今天我们聊的不是怎么制作We ...

  3. simple css 汉化,Simple CSS(CSS文档生成器)

    Simple CSS(CSS文档生成器)简介 Simple CSS(CSS文档生成器)简介一:Simple CSS是一款CSS文档生成器,帮助网页开发人员快速生成CSS样式,Simple CSS使用非 ...

  4. 利用 CSS animation 和 CSS sprite 制作动画

    CSS3 大大强化了制作动画的能力,但是如果要做出图案比较复杂的动画,选择 GIF 依然是一个不错的选择.今天给大家介绍一个使用 CSS animation 配合雪碧图(CSS sprite)来制作动 ...

  5. mysql orm c语言_【译】Simple MySQL ORM for C

    一直不知道有ORM这种东西,直到和 @海坡 交流后才接触. 在项目中,需要将数据存储到数据库中,首先想到的是生成各种raw SQL的解决方法.但随着项目的进展,发现它很不灵活.譬如可能因为有新的需求, ...

  6. python 生成excel像素画_【译】只用 CSS 就能做到的像素画/像素动画

    只用 CSS 就能做到的像素画/像素动画 这篇文章将会介绍只用 CSS 就能制作像素画·像素动画的方法.虽说纯 CSS 就能做到,但是为了更高的可维护性,也会顺便介绍使用 Sass 的制作方法. 上面 ...

  7. CSS animation 与 transition 有何区别?

    CSS的transition只有两个状态:开始状态 和 结束状态:但animation可能是多个状态,有帧的概念 CSS的transition需要借助别的方式来触发,比如CSS的状态选择器(如:hov ...

  8. 使用css animation动画做边框闪动效果

    使用css animation动画做边框闪动效果 在拖拽div节点时,给div节点添加diagramTop-item-click样式,使用css animation动画0.5秒执行一次. css样式 ...

  9. CSS: Animation CSS:动画 Lynda课程中文字幕

    CSS: Animation 中文字幕 CSS:动画 中文字幕CSS: Animation CSS动画为将运动引入交互式项目提供了一种全新的方式 这是网页设计师和开发人员的核心技能,也是用户期望从现代 ...

最新文章

  1. do一下来了一个redux
  2. 计算机网络实验二交换机配置Cisco,思科实验1计算机和交换机的ip地址设置
  3. oracle中master实例,oracle基础(基本介绍)
  4. 企业级虚拟机管理——虚拟机安装自动化
  5. java on RHEL5
  6. Failed to set NvVAD endpoint as default Audio endpoint [0]
  7. 键盘工具栏的快速集成--IQKeyboardManager
  8. Spring整合的quartz任务调度的实现方式
  9. iOS-多线程 ,整理集锦,多种线程的创建
  10. java 树形图构建
  11. 微信小程序 --- 获取网络状态
  12. 本人出版《Java Web 项目开发案例实战—Spring Boot+Mybatis+Hibernate+Spring Cloud》
  13. OpenSesame:一个能够攻击fixed-pin设备的工具
  14. 计算机组成原理第五章----存储器容量的扩展与芯片连接
  15. 搜狗实验室新闻数据文本分类深度学习案例 ———Tensorflow+CNN深度学习全流程(上)
  16. UFS系列三:UFS数据包UPIU
  17. 灰尘对服务器影响吗,灰尘可谓是数据中心机房的死敌
  18. [ICPC USA]Faulty Robot
  19. 崔岩的笔记——动态时间规整算法(Dynamic Time Warping,DTW)
  20. 收藏的技术资料下载网址

热门文章

  1. C语言里printf函数格式控制符的完整格式
  2. 小程序模拟请求本地json数据文章合集
  3. Pythone3 sys模块
  4. codeforces 848B Rooter's Song 思维题
  5. 20145207《Java程序设计》实验二(Java面向对象程序设计)实验报告
  6. Windows 64位下装Oracle 11g,PLSQL Developer的配置问题,数据库处显示为空白的解决方案...
  7. git merge 和 git rebase 小结
  8. 【转】15个超炫的HTML5效果
  9. Jqgrid入门-别具特色的Pager Bar (四)
  10. 面试问题(工作动机、个人愿望 )