css3的动画支持大多数浏览器,但最好还是加-webkit-animation等属性,
IE9以及以前的版本并不支持。
animation属性是一个简写属性,用于设置动画的属性;
animation-name 动画名称(自己取的名称)
animation-duration 规定动画完成一次周期所花费的时间,默认是0.
animation-timing-function 动画的速度曲线,默认是"ease"(其他常用值:ease-in,加速;ease-out,减速;ease-in-out,加速然后减速)
animation-delay 动画何时开始,默认0.(如1秒就是'1s',0.5秒就是0.5s或者.5s)
animation-iteration-count 动画迭代计数,默认1(动画的重复次数,设infinite为无数次)
animation-direction 规定动画是否在下一期逆向地播放.默认不逆向“normal”(逆向alternate)
animation-play-state 规定动画是否正在运行或暂停,默认是“running”
animation-fill-mode 规定对象动画时间之外的状态。
animation: a .5s forwards; animation:缩写 a 动画名字 .5s动画时间 forwards动画在完成后保留最后一个动画
要记得添加动画宽高,可以使用图片与相对定位,绝对定位。
动画还需要一个关键帧来控制,需要重新用一个css3规定动画属性编写
例如animation-mymove那么后面名字就是用来连接帧的
@keyframes mymove前面的@就是用来声明属性,后面mymove即可连接在一起。
前面都是属性,它默认的属性值为none,0并且无继承行的。
@keyframes mymove{
from{background:red;}
to{background:yellow}
}
@keyframes mymove属性,它的属性值里面有几种方法。
这里from是开始,它的属性值是红色。
to是结束,它的属性值是黄色,
animation-duration,设置了时间。记得设置宽高才看得见效果
然后会发现它会从红到黄产生一个动画。
什么是css3中的动画?
动画是使元素从一种样式逐渐变化为另一个样式的效果。
您可以改变任意多的样式任意多的次数。
用百分比来规定变化发生的时间,或用关键词from和to,等同于0%和100%。
0%是动画的开始,100%是动画的完成。
为了得到最佳的浏览器支持,您应该始终定义0%和100%选择器。
@keyframes mymove{
0%{background:red;}
25%{background:yellow;}
50%{background:blue;}
100%{background:green;}
}
以上只是改变了背景色,如需改变位置的话如下:
@keyframes mymove{
0%{background:red; left:0px; top:0px;}
25%{background:yellow;left:200px; top:0px;}
50%{background:blue; left:200px; top:200px}
75%{background:red; left:0px; top:200px;}
100%{background:green;left:0px; top:0px;}
}
0%的时候背景是红色,位置保持不变。
25%的时候背景是黄色,离左200px,上为0.
50%的时候背景是蓝色,离左200px,离上200px.
75%的时候背景是红色,左为0,离上200px.
100%的时候背景绿色, 左为0,上为0.回到了原点了。
transition属性是一个简写属性用于设置4个动画过渡属性。
transition-property:设置那些属性进行过渡/分别有(width:,height:,border-radius:;)列表以逗号隔开
transition-duration:完成过渡动画的效果时间,默认是0
transition-timing-function:设置动画的缓动效果,默认是ease(逐渐变慢)。
(其他常用值:ease-in,加速;ease-out,减速;ease-in-out,加速然后减速。)
transition-delay:设置动画开始的延迟时间,默认是0;
缩写是:transition:all 1s ease-in 1s; all指的是全部的宽高等属性
transition的功能,使css的属性值在一定的时间内平滑地过渡。这种效果可以在鼠标点击、
划过、获得焦点或对元素任何改变中触发,并圆滑地以动画效果改变css属性值。
变形transform
transform属性向元素应用2D或3D转换。该属性允许我们对元素进行:旋转、缩放、移动、倾斜。
transform参数:
rotate(角度值):旋转 (可用正负极为数字单位deg)
translate(x,y):移动 (如只需要移动一个轴为设置translateX(设置为大写X,Y,Z)X,Y为2D转换。
Z为3D转换,需要3D转换设置为translate3d(正负数都可以);
transform-style:preserve-3d;父级元素声明为3d视图;
scale(x,y):缩放 (scale(1.5)x轴与y轴同时放大1.5倍. scale(1,0.5)x轴不变,y轴缩放0.5倍)
skew(x,y):扭曲 (如只需要一个轴扭曲倾斜skewX,skewY只沿着X,Y轴角进行扭曲)
matrix(a,b,c,d,e,f):矩阵把所有的2d转换方法结合在一起,需要6个参数,包含数学函数,允许我们旋转,缩放,移动,以及扭曲。(2D转换有6个值的矩阵,3D则有16个值的4X4矩阵)
例如translate:matrix(0.866,0.5,-0.5,0.866,0,0)
perspective:为3d转换元素定义透视视图。
改变元素基点transform-origin:x,y;它的作用是改变transform动作的基点(中心点),
如需要改变单一的轴数 transform-origin:x-axis(单位为left,center,right,length,%)
y轴也是一样的写法,但z轴的单位只有length
box-shadow对象阴影
一语法:{box-shadow:[inset] x-offset y-offset blur-radius spread-radiuscolor
语法:box-shadow:投影方式(inset) x轴偏移量 Y轴偏移量 阴影模糊半径 阴影扩展半径 阴影颜色
可以使用一个或多个投影,如果使用多个投影时必须要用逗号,分开。
另外,还可以通过inset来设置对象的内阴影。不设置inset就是默认的外阴影。
text-shadow是给文本添加阴影效果。box-shadow是给元素添加阴影效果。
阴影类型:此参数可选。如不设值,默认投影方式是外阴影;如取其唯一值“inset”,其投影为内阴影;
X-offset:阴影水平偏移量,其值可以是正负值。如果值为正值,则阴影在对象的右边,其值为负值时,阴影在对象的左边;
Y-offset:阴影垂直偏移量,其值也可以是正负值。如果为正值,阴影在对象的底部,其值为负值时,阴影在对象的顶部;
阴影模糊半径:此参数可选,,但其值只能是为正值,如果其值为0时,表示阴影不具有模糊效果,其值越大阴影的边缘就越模糊;
阴影扩展半径:此参数可选,其值可以是正负值,如果值为正,则整个阴影都延展扩大,反之值为负值时,则缩小;
阴影颜色:此参数可选。如不设定颜色,浏览器会取默认色,但各浏览器默认取色不一致,特别是在webkit内核下的safari和chrome浏览器下表现为透明色,在Firefox/Opera下表现为黑色(已验证),建议不要省略此参数。