CSS3- animation-动画基础篇

CSS3动画 -- animation相关属性

1 animation-name: 动画名

指定应用一系列的动画, 每个名称代表一个由@keyframes定义的动画序列

属性值:

  • none: 特殊关键字, 表示无关键帧
  • name: 动画名称

2 animation-duration: 完成时间

指定一个动画周期的时长, 默认值为0, 表示无动画

属性值:

  • time: 时间, 单位为s 或者 ms, 无单位值无效, 不能为负值

3 animation-timing-function: 执行速度

定义动画在每一个动画周期中执行的节奏

属性值:

  • linear 动画从头到尾的速度是相同的
  • ease 默认。动画以低速开始,然后加快,在结束前变慢
  • ease-in 动画以低速开始
  • ease-out 动画以低速结束
  • ease-in-out 动画以低速开始和结束
  • cubic-bezier(n,n,n,n) 在 cubic-bezier 函数中自己的值。可能的值是从 0 到 1 的数值。

4 animation-fill-mode: 在执行之前和之后如何将样式应用于其目标

设置CSS动画在执行之前和之后如何将样式应用于其目标

属性值:

  • none 当动画未执行时,动画将不会将任何样式应用于目标,而是已经赋予给该元素的 CSS 规则来显示该元素。这是默认值
  • forwards 在动画结束后(由 animation-iteration-count 决定),动画将应用该属性值。
  • backwards 动画将在应用于目标时立即应用第一个关键帧中定义的值,并在animation-delay期间保留此值。
  • both 动画将遵循forwards和backwards的规则,从而在两个方向上扩展动画属性。

5 animation-delay: 动画延迟时间

定义动画于何时开始, 即从动画应用在元素上到动画开始的这段时间的长度

允许负值, 定义负值会让动画立即开始. 但是会在它的动画序列中某位置开始。 例如,如果设定值为-1s,动画会从它的动画序列的第1秒位置处立即开始

如果为动画延迟指定了一个负值,但起始值是隐藏的,则从动画应用于元素的那一刻起就获取起始值。

属性值:

  • time: 秒(s) 或 毫秒(ms), 未设置单位, 定义无效值

6 animation-iteration-count: 执行次数

定义动画的执行次数

属性值:

  • infinite: 无限次播放
  • <number>: 默认为1, 可以用小数定义循环, 来播放动画周期的一部分, 不允许为负值. 例如: 0.5 表示播放到动画周期的一半

7 animation-direction: 是否反向播放

定义动画是否反向播放

属性值:

  • normal: 默认值, 每个循环内动画向前循环,换言之,每个动画循环结束,动画重置到起点重新开始,
  • reverse: 动画反向播放
  • alternate 动画交替反向运行,反向运行时,动画按步后退,同时,带时间功能的函数也反向,比如,ease-in 在反向时成为ease-out。计数取决于开始时是奇数迭代还是偶数迭代
  • alternate-reverse 反向交替, 反向开始交替 动画第一次运行时是反向的,然后下一次是正向,后面依次循环。决定奇数次或偶数次的计数从1开始。

8 animation-play-state: 是否运行 或 暂停

定义一个动画是否运行 或者 暂停. 可以通过查询它来确定动画是否在运行, 也可以通过设置它来暂停动画 或 播放动画

恢复一个已暂停的动画, 将从它开始暂停的时候, 而不是从动画序列的起点开始在动画

属性值:

  • running: 当前动画正在运行
  • paused: 当前动画以被停止

9 animation: 动画属性

语法:

animation: name(名称) duration(完成时间) timing-function(速度) delay(延迟时间) iteration-count(次数) direction(是否反向播放) fill-mode(开始和结束的样式) play-state(状态)

每个动画定义中的属性值的顺序很重要:可以被解析为 <time> 的第一个值被分配给animation-duration, 第二个分配给 animation-delay。

每个动画定义中的值的顺序,对于区分 animation-name 值与其他关键字也很重要。解析时,对于除 animation-name 之外的有效的关键字,必须被前面的简写中没有找到值的属性所接受。此外,在序列化时,animation-name 与以及其他属性值做区分等情况下,必须输出其他属性的默认值

10 @keyframes: 定义动画关键帧

通过在动画序列中定义关键帧(或waypoints)的样式来控制CSS动画序列中的中间步骤。这比转换更能控制动画序列的中间步骤。

  • 名称规则

    标识动画的字符串,由大小写敏感的字母a-z、数字0-9、下划线(_)和/或横线(-)组成。第一个非横线字符必须是字母,数字不能在字母前面,不允许两个横线出现在开始位置。

  • 单位

    可以使用百分比值 或者 from(开始), to(结束)关键字

  • 让关键帧序列生效

    如果一个关键帧规则中没有指定动画的开始 或 结束状态(没有定义0%/from 和 100%/to), 将使用元素的现有样式作为起始/结束状态. 这可以用来从初始状态开始元素动画,最终返回初始状态。

    如果使用了不能用作动画的属性, 那么这些属性会被忽略掉, 支持的属性仍然是有效的

  • 重复定义(针对整体而言)

    如果多个关键帧使用同一个名称(即动画名称), 以最后一个为主, 不存在层叠样式的情况

    如果一个@keyframes里的关键帧的百分比存在重复的情况, 以最后一次定义的关键帧为准. 不存在层叠样式的情况, 即使多个关键帧设置相同的百分值也不会全部执行

    /* 此动画无效, 全部无效 */
    @keyframes identifier {
      0% { top: 0; left: 0px}
      100% { top: 0; left: 30px;}
    }
    @keyframes identifier {
      0% { top: 0; left: 20px}
      50% { top: 10px, left: 30px }
      100% { top: 0; left: 50px;}
    }
    
  • 当关键帧被重复定义

    如果某一个关键帧出现了重复的定义,且重复的关键帧中的css属性值不同,以最后一次定义的属性为准。 => 针对属性, 重复定义时, 同属性最后一个定义的覆盖前面的属性

    @keyframes identifier {
      0% { top: 0; left: 0px}
      /* top属性无效, left属性生效*/ 
      50% { top: 30px; left: 20px; }
      50% { top: 10px; }
      100% { top: 0; left: 30px;}
    }
    
  • 属性个数不定

    如果一个关键帧中没有出现其他关键帧中的属性, 那么这个属性将使用插值(不能使用插值的属性除外, 这些属性会被忽略掉).

    @keyframes identifier {
      0% { top: 0; left: 0; }
      30% { top: 50px; }
      68%, 72% { left: 50px; }
      100% { top: 100px; left: 100%; }
    }
    
  • 关键帧中的!import关键词

    !import关键词会被忽略

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,076评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,658评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,732评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,493评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,591评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,598评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,601评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,348评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,797评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,114评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,278评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,953评论 5 339
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,585评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,202评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,442评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,180评论 2 367
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,139评论 2 352

推荐阅读更多精彩内容