css动画-animation各个属性详解(转)
CSS3的animation很容易就能实现各种酷炫的动画,虽然看到别人的成果图会觉得很难,但是如果掌握好各种动画属性,做好酷炫吊炸天的动画都不在话下,好,切入正题。
一、动画属性:
动画属性包括:①animation-name,②animation-duration,③animation-timing-function,
以下是各属性详解:
1、animation-name:指定要绑定到选择器的关键帧的名称。
2、animation-duration:定义动画完成一个周期需要多少秒或毫秒
3、animation-timing-function:指定动画将如何完成一个周期。
值 | 说明 |
---|---|
linear | 动画从头到尾的速度是相同的。 |
ease | 默认。动画以低速开始,然后加快,在结束前变慢。 |
ease-in | 动画以低速开始。 |
ease-out | 动画以低速结束。 |
ease-in-out | 动画以低速开始和结束。 |
cubic-bezier(n,n,n,n) | 在 cubic-bezier 函数中自己的值。可能的值是从 0 到 1 的数值。 |
step-start | 在变化过程中,都是以下一帧的显示效果来填充间隔动画 |
step-end | 在变化过程中,都是以上一帧的显示效果来填充间隔动画 |
steps() | 可以传入两个参数,第一个是一个大于0的整数,他是将间隔动画等分成指定数目的小间隔动画,然后根据第二个参数来决定显示效果。第二个参数设置后其实和step-start,step-end同义,在分成的小间隔动画中判断显示效果。 |
3.1 cubic-bezier(n,n,n,n)称为三次贝塞尔曲线,速度曲线。
3.1.1 cubic-bezier(n,n,n,n)曲线定制网站地址:http://cubic-bezier.com/#.23,.66,.76,.52
3.1.2 小球落地又弹起demo地址:http://codepen.io/aSuncat/pen/gwLBWz
我不知道这个cubic-bezier曲线是怎么算出来的,难道是要靠自己试出来的嘛,不知道有没有人知道怎么算出来的。???
3.2 不同值之间差异demo地址(4个方块背景颜色变化):http://codepen.io/aSuncat/pen/JRRzax
demo解析:①step-start:20%(background: green;)到60%(background: blue;)之间,显示的是60%的效果(background: blue;)
②step-end:与step-start相反,20%(background: green;)到60%(background: blue;)之间,显示的是20%的效果(background: green;)
③steps(1, start) 等于step-start,steps(1,end)等于step-end
④steps函数的工作机制:
4、animation-delay:属性定义动画什么时候开始。
4.1 单位可以是秒(s)或毫秒(ms)。
4.2 单位可以是负值,-2s表示动画立马开始,但跳过 2 秒进入动画,即前2秒的动画不执行,直接跳过前2秒进入动画。
4.2.1 类似音波的加载效果demo地址:http://codepen.io/aSuncat/pen/ALLNpE
demo解析:①设置同样的动画,通过animation为负值来实现不同时间段的线条的长度。
②效果示意:
一次动画1.2s,分解为12个阶段,每个阶段0.1秒。每个阶段的第3秒线拉长。
line1是从0进入动画。
line2是跳过前11个阶段,即直接从11进入动画。
依次类推…
③写5个div时,连着写,然后自己设置margin,一方面避免代码压缩后各线条之间没有空隙,另一方面避免自己不知道5根线的总宽度。
4.2.2 京东全民寻宝demo地址:http://codepen.io/aSuncat/pen/WGoZGm
demo解析:①如果没有steps(8),图片会从第一行字直接跳到最后一行,中间的6行不会出现。
5、animation-iteration-count :定义动画应该播放多少次。
值 | 说明 |
---|---|
n | 一个数字,定义应该播放多少次动画 |
infinite | 指定动画应该播放无限次(永远) |
6、animation-direction:定义是否循环交替反向播放动画。
值 | 说明 |
---|---|
normal | 默认值。动画按正常播放。 |
reverse | 动画反向播放。 |
alternate | 动画在奇数次(1、3、5…)正向播放,在偶数次(2、4、6…)反向播放。 |
alternate-reverse | 动画在奇数次(1、3、5…)反向播放,在偶数次(2、4、6…)正向播放。 |
initial | 设置该属性为它的默认值。 |
inherit | 从父元素继承该属性。 |
6.1 如果动画被设置为只播放一次,该属性将不起作用。
6.2 动画循环播放时,每次都是从结束状态跳回到起始状态,再开始播放。animation-direction属性可以重写该行为。
7、animation-fill-mode:规定当动画不播放时(当动画完成时,或当动画有一个延迟未开始播放时),要应用到元素的样式。
值 | 说明 |
---|---|
none | 默认值。动画在动画执行之前和之后不会应用任何样式到目标元素。 |
forwards | 在动画结束后(由 animation-iteration-count 决定),动画将应用该属性值。 |
backwards | 动画将应用在 animation-delay 定义期间启动动画的第一次迭代的关键帧中定义的属性值。这些都是 from 关键帧中的值(当 animation-direction 为 “normal” 或 “alternate” 时)或 to 关键帧中的值(当 animation-direction 为 “reverse” 或 “alternate-reverse” 时)。 |
both | 动画遵循 forwards 和 backwards 的规则。也就是说,动画会在两个方向上扩展动画属性。 |
initial | 设置该属性为它的默认值。 |
inherit | 从父元素继承该属性。 |
7.1 默认情况下,CSS 动画在第一个关键帧播放完之前不会影响元素,在最后一个关键帧完成后停止影响元素。animation-fill-mode 属性可重写该行为。
7.2 forwads表示让动画停留在结束状态,即停留在最后一帧。
7.3 backwords:
7.3.1 当 animation-direction 为 “normal” 或 “alternate” 时,回到第一帧。
7.3.2 当 animation-direction 为 “reverse” 或 “alternate-reverse” 时,停留在最后一帧。
8、animation-play-state:指定动画是否正在运行或已暂停。
值 | 说明 |
---|---|
paused | 指定暂停动画。 |
running | 指定正在运行的动画。 |
8.1 在JavaScript中使用此属性在一个周期中暂停动画。
8.2 线条鼠标悬停开始动画demo地址:http://codepen.io/aSuncat/pen/BLLbko
二、动画相关
1、animation的简写(即上述属性的介绍顺序)
animation: name duration timing-function delay iteration-count direction fill-mode play-state;
- 1
- 1
具体化可以记成一下形式:
animation:myAnim 1s linear 1s infinite alternate both running;
- 1
- 1
2、keyframes:定义动画规则,关键帧。
值 | 说明 |
---|---|
animationname | 必需的。定义animation的名称。 |
keyframes-selector | 必需的。动画持续时间的百分比。 |
css-styles | 必需的。一个或多个合法的CSS样式属性 |
2.1 写法自由
2.1.1 指定的变化时发生时使用%,或关键字”from”和”to”,这是和0%到100%相同。以下两段代码效果相同。
@keyframes myAnim{from { background: #f00; } 50% { background: #0f0; } to { background: yellowgreen; } }
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
@keyframes myAnim{0% { background: #f00; } 50% { background: #0f0; } 100% { background: yellowgreen; } }
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
2.1.2 如果省略某个状态,浏览器会自动推算中间状态。但是,为了获得最佳的浏览器支持,应该始终定义0%和100%的选择器。
@keyframes rainbow {50% { background: orange } to { background: yellowgreen } } @keyframes rainbow { to { background: yellowgreen } }
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
2.1.3 可以将多个状态写在一行。
@keyframes myAnim{0%,100% { background: #f00; } 50% { background: #0f0; }
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
3、浏览器前缀
IE 10和Firefox(>= 16)支持没有前缀的animation,firefox(<16)使用-moz-前缀,因为现在firefox的版本也都不低,所以firefox都直接使用没有前缀的animation。
而chrome,safari,opera不支持,所以必须使用webkit前缀。
使用示例如下:
div{animation:myAnim 1s; -webkit-animation:myAnim 1s; } @keyframes myAnim{ 0% { background: #f00; } 50% { background: #0f0; } 100% { background: yellowgreen; } } @-webkit-keyframes myAnim{ 0% { background: #f00; } 50% { background: #0f0; } 100% { background: yellowgreen; } }
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
4、定义动画时,必须定义动画的名称和动画的持续时间。如果省略持续时间,动画将无法运行,因为默认值是0。
转载于:https://www.cnblogs.com/Isabel4u/p/7407072.html
css动画-animation各个属性详解(转)相关推荐
- css动画-animation各个属性详解(通俗易懂)
https://blog.csdn.net/chritina/article/details/99623017
- 【青山css】css3阴影效果属性详解及创意玩法
前言 css阴影效果是我们经常使用的一个css属性,但你有仔细了解过它吗?是不是用的时候直接从蓝湖上复制过来就行了,那你了解它的每个参数吗?用阴影又能实现哪些好看的效果呢?来看一看我收集总结的css阴 ...
- 【前端小点】CSS之background背景属性详解
本篇文章我们将一起展开来看css的background背景属性. 一.结构 创建DIV <div class="div1">1 </div> 样式 widt ...
- CSS中的margin、border、padding区别 CSS padding margin border属性详解
图解CSS padding.margin.border属性 W3C组织建议把所有网页上的对像都放在一个盒(box)中,设计师可以通过创建定义来控制这个盒的属性,这些对像包括段落.列表.标题.图片以及层 ...
- CSS中的text-overflow属性详解 (控制文字在一行显示,超出部分加省略号)
text-overflow: ellipsis; 表示当文本内容超出所在容器的宽度时,用省略号来代替超出的部分. white-space:nowrap; 表示文本不换行. overflow: hidd ...
- 【CSS知识点】——display属性详解
文章目录 display属性 dispaly属性的作用 display的分类 display-outside(外部值) display-inside(内部值) 使用flex实现上下左右居中: 使用fl ...
- HTML/CSS中文本text属性详解
我们可以通过添加一些HTML标记和CSS属性来设置text文本的样式. HTML中的标记包括结构化标记和语义化标记两种,结构化标记简单来说是用来标记标题和段落的,而语义化标记则是不会影响到网页的结构. ...
- HTML+CSS教程(十)css3(3D属性详解及动画)
一.3D 转换 1.左手坐标系 :伸出左手,让拇指和食指成"L"形,大拇指向右,食指向上,中指指向前方.这样我们就建立了一个左手坐标系,拇指,食指和中指分别代表X.Y.Z 轴的正方 ...
- css动画相关属性详解
css动画相关属性详解 文章目录 css动画相关属性详解 什么是CSS动画? 一.@keyframes规则 二.延迟动画-animation-delay 三.设置动画应运行多少次animation-i ...
最新文章
- 2022-2028年中国反射偏光膜行业市场研究及前瞻分析报告
- 【怎样写代码】工厂三兄弟之工厂方法模式(四):工厂方法模式
- linux iscsi
- Potato的暑期训练day#1题解 ——毒瘤构造
- 粉刷木板(ybtoj-单调队列)
- 【原理】解析一致性哈希算法
- Service Mesh 如何重定义云原生计算?阿里服务网格技术大揭秘
- 没有躲过的坑--vector使用erase后迭代器变成野指针
- wxpython记录生词GUI程序
- Kafka从上手到实践 - 庖丁解牛:Topic Broker | 凌云时刻
- nrf52840芯片入门
- Python 文本处理的几个库
- 淘宝七天自动确认收货,让你设计,可以怎么实现?(附源码)
- 京东关于区块链的发展历程
- python 高斯约当消元法求逆矩阵
- Exception in thread main java.lang.NoClassDefFoundError: goetl/etl/Ip2Plac
- python中格式化输出是什么意思_python中的格式化输出用法总结
- 数据库的行格式ROW_FORMAT
- 知网查重学术不端文献检测系统查不查公式和图表文字
- 软著申请提交审核一般时间是60-75工作日,软件著作权登记申请是可以加急的,加急是20-30工作日
热门文章
- 大数据培训学习效果好吗
- 【转】实战USB接口手机充电 看3.0/2.0谁更快
- 服务器x3650查看硬件日志,查看服务器硬件信息
- selenium原理和尝试
- 中国电信校招笔试java_中国电信校园招聘笔试考什么?
- iOS小技能:iOS13 证件扫描 文字识别API
- python内置函数用来返回序列中的最小元素_1000道Python题库系列分享二(48道)
- 下列哪个不属于Hadoop的特性?
- 5、Java基础——变量和常量、数据类型、基本数据类型的默认值、内存单位的换算
- [JavaScript]_[初级]_[关于forin或for...in循环语句的用法]