知识专栏
多方位、多角度、深度解读您所关心的问题

css3属性很多,并且有些无论是字母的拼写还是字面上的意思,都容易混淆。比如看了animation、transition、transform、translate这四个属性后,感觉头皮一层发麻,感觉好混乱。

要切实深入了解他们之间的区别,我们就需要在极度冷静的状态下去学习css3的这四个属性的动画效果。

一、先了解下这四个属性的含义:

(1)animation(动画):用于设置动画属性,他是一个简写的属性,包含6个属性;

(2)transition(过渡):用于设置元素的样式过渡,和animation有着类似的效果,但是细节上有很大的不同;

(3)transform(变形):对元素进行2D或3D转换,可以旋转、缩放、移动或倾斜,和设置样式的动画并没有什么联系,就相当于color一样用来设置元素的“外表”;

(4)translate(移动):translate只是transform的一个属性值,即移动。

二、这四个属性都有哪些值?

(1)animation的值介绍:

a、animation-name:指定要绑定到选择器的关键帧的名称

b、animation-duration:动画指定需要多少秒或毫秒完成

c、animation-timing-function:设置动画将如何完成一个周期

d、animation-delay:设置动画在启动前的延迟间隔

e、animation-iteration-count:定义动画的播放次数

f、animation-direction:指定是否应该轮流反向播放动画

g、animation-fill-mode:规定当动画不播放时(当动画完成时,或当动画有一个延迟未开始播放时),要应用到元素的样式

h、animation-play-state:指定动画是否正在运行或已暂停

i、initial:设置属性为其默认值

j、inherit:从父元素继承属性

(2)transition的值介绍:

a、transition-property:指定CSS属性的name,transition效果

b、transition-duration:transition效果需要指定多少秒或毫秒才能完成

c、transition-timing-function:指定transition效果的转速曲线

d、transition-delay:定义transition效果开始的时候

(3)transform的值介绍:

a、none:定义不进行转换

b、matrix(n,n,n,n,n,n):定义 2D 转换,使用六个值的矩阵

c、matrix3d(n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n):定义 3D 转换,使用 16 个值的 4x4 矩阵

d、translate(x,y):定义 2D 转换

e、translate3d(x,y,z):定义 3D 转换

f、translateX(x):定义转换,只是用 X 轴的值

g、translateY(y):定义转换,只是用 Y 轴的值

h、translateZ(z):定义 3D 转换,只是用 Z 轴的值

i、scale(x[,y]?):定义 2D 缩放转换

j、scale3d(x,y,z):定义 3D 缩放转换

k、scaleX(x):通过设置 X 轴的值来定义缩放转换

l、scaleY(y):通过设置 Y 轴的值来定义缩放转换

m、scaleZ(z):通过设置 Z 轴的值来定义 3D 缩放转换

n、rotate(angle):定义 2D 旋转,在参数中规定角度

o、rotate3d(x,y,z,angle):定义 3D 旋转

p、rotateX(angle):定义沿着 X 轴的 3D 旋转

q、rotateY(angle):定义沿着 Y 轴的 3D 旋转

r、rotateZ(angle):定义沿着 Z 轴的 3D 旋转

s、skew(x-angle,y-angle):定义沿着 X 和 Y 轴的 2D 倾斜转换

t、skewX(angle):定义沿着 X 轴的 2D 倾斜转换

u、skewY(angle):定义沿着 Y 轴的 2D 倾斜转换

v、perspective(n):为 3D 转换元素定义透视视图

三、不同之处:

animation与transition不同的是,keyframes提供更多的控制,尤其是时间轴的控制,这点让css animation更加强大,使得flash的部分动画效果可以由css直接控制完成,而这一切,仅仅只需要几行代码,也因此诞生了大量基于css的动画库,用来取代flash的动画部分。

猜您还想看: animation translate transition css3
赞一下
--
踩一脚
--

您已成功复制微信号

leishi010

打开微信添加好友?

确定