基础概念

  CSS样式可分为两种,一种值接近无限的集合(color,width),一种值只有几种(display),可以进行计算的样式,产生了动画效果。\

  1. 动画的第一步是获得元素的精确样式值。

  2. 若要做平移,传入结束位置、距离、时长、fps。

tips:fps设置多少合适?

  除了人的眼睛,还要考虑到显示器的显示速度与浏览器的渲染速度。据国外统计,根据人所能感知到的变化间隔,25毫秒为最佳数值。

缓动公式

  

  缓动公式来源于数学上的三角函数、二次项方程、高阶方程式,有了公式就可以控制移动速度。

  一般情况下,只会用默认的linear或easeIn。现在所有的缓动公式,除了linear外都以ease开头命名,添加三种后缀,In代表加速、Out代表减速、InOut代表先加速后减速,于是有easeIn、easeOut、easeInOut之分。这种命名表示没有介入高阶函数与三角函数,linear表示匀速。

CSS3 transition

  transition是CSS入侵行为层的主要行为。

  包含4个属性,样式名、持续时间、缓动公式、延迟多久才触发。

transition-property

  指定属性执行transition效果,主要有以下几个值:none(无)、all(所有属性 默认值)、indent(元素属性名)。

  如果指定属性,可以选择的类型如下:

  1、与颜色相关的属性,如background-color,border-color,color,outline-color。

  2、与盒子模型、字体大小、间距、行高有关样式。如width、top、margin、line-height等。

  3、透明度 opacity。

  4、变形相关 即transform。

  5、阴影 text-shadow box-shadow。

  6、线性渐变与径向渐变。

transition-duration

  动画持续时间,单位可以是s,也可以是ms。

transition-timing-function

  缓动公式。有6个可能的值

  1、ease:逐渐变慢(默认值)

  2、linear:匀速

  3、ease-in:加速

  4、ease-out:减速

  5、ease-in-out:先加速后减速

  6、cubic-bezier:允许自定义一个时间曲线。(x1,y1,x2,y2),四个值对应贝塞尔曲线的4个点,值需定义在[0,1]之间。

transition-delay

  延迟执行时间,可选单位s或ms。

  该属性缺点是不可控,无法暂停,一般框架不会用这个来实现动画引擎。

CSS3 animation

  

  

  吸收了Flash的关键帧理念,并克服了transition的一些缺陷。

  animation是一个复合样式,可以细分为8个更细的样式,情况与background-*关系相仿。

  

1、animation-name

  制约关键帧样式的名字,可以同时对应多个关键帧样式规则名,以‘,’号分开。

2、animation-duraiton

  动画持续时间,单位为s或ms。

3、animation-timing-function

  缓动公式。

4、animation-delay

  动画延迟多久才开始,不计入duration。

5、animation-iteration-count

  动画播放次数,值可以为正整数或infinite,默认只执行一次。

6、animation-direction

  动画执行的方向,有四个值:normal、alternate、reverse、alternate-reverse。

  normal:指每次都从第一帧开始。

  alternate:count大于1有效,动画从0%-100%,100%-0%循环。

  reverse:有兼容问题,与normal相反,从最后一帧开始。

  alternate-reverse:有兼容问题,与alternate相反。

7、animation-fill-mode

  指动画跑完一圈,是保持动画前的状态还是此时的状态。

8、animation-play-state

  用于暂停或继续此动画。

  除了最后两个,前六个可以写在一块。

JS框架设计读书笔记之-动画的更多相关文章

  1. JS框架设计读书笔记之-节点模块

    节点的创建 浏览器提供了多种手段创建API,从流行程度依次是document.createElement.innerHTML.insertAdjacentHTML.createContextualFr ...

  2. JS框架设计读书笔记之-核心模块

    随笔记录一下读书心得 1. 框架模块-核心模块 该模块是框架最先执行的部分,jQuery与vue中都有初始化的代码. 模块的功能主要是:对象扩展.数组化.类型判定.事件绑定和解绑.无冲突处理.模块加载 ...

  3. JS框架设计读书笔记之-选择器引擎01

    选择符 选择符是指CSS样式规则最左边的部分,例如 p{},#id{},.class{},p.class{} 等等 总共可以分为四大类: 并联选择器 => 逗号 => $('div,spa ...

  4. JS框架设计读书笔记之-小知识

    这一篇写一点小知识 JS中0.1+0.2为什么不等于0.3? 关于这个问题之前也很疑虑,老师也只是笼统的讲这是JS的语言问题,但是内部具体的情况却没有讲,看了书才发现原理如此简单. 简单来讲,计算机识 ...

  5. JS框架设计读书笔记之-异步

    setTimeout/setInterval 1. 如果回调执行时间大于间隔时间,真正的间隔时间会大一些. 2. 存在一个最小的时间间隔,即使seTimeout(fn,0),在IE6-IE8中大概为1 ...

  6. JS框架设计读书笔记之-选择器引擎02

    选择器引擎涉及相关概念 概念 以Sizzle的主函数声明为例,来说明引擎的相关概念. function Sizzle(selector, context, results, seed) { //... ...

  7. JS框架设计读书笔记之-函数

    这次写一些函数 1.模拟Object.keys方法 Object.keys = Object.keys || function(obj){ var a = []; // a[0],a[1]...分别赋 ...

  8. javascript框架设计(读书笔记)

    我觉得多看几本进阶的书 与其十本书读一遍,不如一本书读十遍 读书的启示: 读好书(看推荐) 精读(重复看) 能读厚书(javascript权威指南) Object.keys Object.keys=O ...

  9. js框架设计1.1命名空间笔记

    借到了司徒正美的写的js框架设计一书,司徒大神所著有些看不太懂,果然尚需循序渐进,稳扎js基础之中. 第一张开篇司徒阐述了种子模块的概念 种子模块亦为核心模块,框架最先执行模块,司徒见解应包含:对象扩 ...

随机推荐

  1. Eclipse插件springsource-tool-suite在线和离线安装步骤

    springsource-tool-suite插件是一个基于Eclipse的开发环境,为开发Spring应用程序而定制.它提供了一个即用的环境来实现,调试,运行和部署Spring应用程序,包括Pivo ...

  2. vmware三种网络格式

    网络地址转换(NAT) 这种访问模式指的是虚拟机不占用主机所在局域网的ip,通过使用主机的NAT功能访问局域网和互联网,意味着虚拟机可以访问局域网中的其他电脑,但是其他电脑不知道虚拟机的存在. 使用这 ...

  3. iOS开发者的管理工具-CocoaPods安装

    1. 安装 Ruby 对于iOS开发者,CocoaPods是最方便使用的第三方管理工具了,但是怎么安装CocoaPods呢,安装CocoaPods之前,要确保mac已经安装上Ruby,但在安装Ruby ...

  4. 开源API集成测试工具 Hitchhiker v0.1.3 - 参数化请求

    Hitchhiker 是一款开源的 Restful Api 集成测试工具,你可以轻松部署到本地,和你的team成员一起管理Api. 详细介绍请看: http://www.cnblogs.com/bro ...

  5. java集合系列——Map之HashMap介绍(八)

    1.HashMap的简介 (JDK1.7.0_79版本) HashMap是基于哈希表的Map实现的的,一个Key对应一个Value,允许使用null键和null值,不保证映射的顺序,特别是它不保证该顺 ...

  6. Kia's Calculation hdu4726

    Kia's Calculation Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others ...

  7. Java比较器

    导语 本节内容,比较器Comparable是核心内容. 主要内容 重新认识Arrays类 两种比较器的使用 具体内容 Arrays类 在之前一直使用的"java.util.Arrays.so ...

  8. 用MXNet实现mnist的生成对抗网络(GAN)

    用MXNet实现mnist的生成对抗网络(GAN) 生成式对抗网络(Generative Adversarial Network,简称GAN)由一个生成网络与一个判别网络组成.生成网络从潜在空间(la ...

  9. “一切都是消息”--MSF(消息服务框架)之【发布-订阅】模式

    在上一篇,“一切都是消息”--MSF(消息服务框架)之[请求-响应]模式 ,我们演示了MSF实现简单的请求-响应模式的示例,今天来看看如何实现[发布-订阅]模式.简单来说,该模式的工作过程是: 客户端 ...

  10. ConcurrentHashMap源码及分析

    ConcurrentHashMap是在jdk1.5版本开始,存在于java.util.concurrent包下.本文主要是针对jdk1.7版本. 由于HashMap是非线程安全的,HashTable虽 ...