本系列内容由ZouStrong整理收录
整理自 《写给大家看的CSS书(第2版)》、《CSS权威指南(第3版)》、《精彩绝伦的CSS》、《精通CSS:高级Web标准解决方案(第2版)》、CSS参考手册 css.doyoe.com
CSS3的变换,过渡和动画为页面的展现带来了翻天覆地的变化,使用它们可以创造出意想不到的动画和变换效果
CSS3的变换或者动画不会影响周围的元素布局(不会导致页面重绘)
------3D变换还没有完全吃透,待强化------
前两个方法接收一个长度参数,后一个方法接收两个参数(第一个参数对应X轴,第二个对应Y轴(省略则默认为0))
对于3D方法来说,前一个接收一个长度参数,后一个接收三个参数(分别对应X轴,Y轴,Z轴,且不能省略)
transform:translateX(100px);
transform:translate(100px,200px);
前四个方法接受一个角度(deg)参数,正角度值时顺时针旋转,负角度值时逆时针旋转
后一个方法接收四个参数,前三个参数是一个0-1之间的数值,最后一个参数是角度
transform:rotate(100deg);
前两个方法接收一个数值参数,后一个方法接收两个数值(第一个参数对应X轴,第二个对应Y轴(省略则默认为第一个参数)),参数无单位,表示倍数
transform:scaleX(2);
transform:scale(10,2);
前两个方法接收一个角度(deg)参数,后一个方法接收两个参数(第一个参数对应X轴,第二个对应Y轴(省略则默认为0))
transform:skewX(20deg);
transform:skew(10dge,20deg);
transform:matrix(a,b,c,d,e,f);
transform:matrix3d(a,b,c,d,e,f....);
以上的几个方法,本质上都是应用matrix()方法实现的,只是前者更利于理解罢了
接收两个参数,第一个用于横坐标,第二个用于纵坐标,如果只提供一个,则该值用于横坐标,纵坐标自动获得50%
transform-origin :let top;
注:要想使3D变换生效,必须要指定其父元素的perspective属性和transform-style属属性
可以同时指定多个属性值,以逗号分隔即可
transition-property : all;
transition-property : width,color;
同样,如果指定了多个属性要过渡,那么,可以指定多个过渡时间,也要以逗号分隔
transition-duration : 2s;
示例:
transition-timing-function : ease;
同样,如果指定了多个属性要过渡,那么,可以指定多个延迟时间,也要以逗号分隔
transition-delay : 2s;
作用:指定元素过渡
默认值:看每个独立属性
适用于:所有元素,包含伪对象:after和:before
继承性:无
动画性:有
取值:看每个独立属性
可以为同一个元素的多个属性定义过渡效果
transition:color 2s ease 2s;
/*可以做出等待效果*/
transition: width 2s linear 0,height 2s linear 2s;
使用动画之前, (详见语法规则篇)
@keyframes mydemo {
0% { transform: translate(0, 0); }
40% { transform: translate(40px, 0); }
80% { transform: translate(80px, 0); }
100% { transform: translate(100px, 20px); }
}
作用:设置元素要使用的动画名称
默认值:none
适用于:所有元素,包含伪对象:after和:before
继承性:无
取值:none、已定义的动画名称
可以为同一个元素指定多个动画,只需使用逗号分隔即可
animation-name:mydemo;
animation-name:mydemo1,mydemo2;
如果提供多个属性值,以逗号进行分隔
animation-duration:2s;
如果提供多个属性值,以逗号进行分隔
animation-timing-function:ease;
如果提供多个属性值,以逗号进行分隔
animation-delay:2s;
如果提供多个属性值,以逗号进行分隔
animation-iteration-count:2;
animation-iteration-count:infinite;
如果提供多个属性值,以逗号进行分隔
animation-iteration-count:2;
反向播放也消耗一次迭代次数,所以如果把animation-iteration-count设为1,则该属性没有效果
如果提供多个属性值,以逗号进行分隔
animation-play-state:running;
可以在 JavaScript 中使用该属性,这样就能在播放过程中暂停动画
w3c正考虑是否将该属性移除,因为动画的状态改变可以通过其它的方式实现,比如重设样式
none——恢复原始状态
forwards——设置元素状态为动画结束时的状态
backwards——设置元素状态为动画开始时的状态
both——设置元素状态为动画开始或结束时的状态
如果提供多个属性值,以逗号进行分隔
animation-fill-mode:forwards;
如果提供多组属性值,以逗号进行分隔
animation:demo 2s linear 2s 2 normal running;
animation:demo 2s linear 2s 2 normal running
,demo2 2s linear 2s 2 alternate running;
注:简写属性包含六个属性,不包含animation-fill-mode
注:至少指定前两个属性,没有名称、没有时长都不会执行动画