CSS3中2D转换、过渡、动画的属性
一、2D转换
2D是可以将元素进行移动、缩放、转动、拉长或拉伸
2D变换的方法:
transform(适用于2D或3D转换的元素):translate()、rotate()、scale()、skew(Xdeg,Ydeg)、matrix(1,2,3,4,5,6)复合属性(注:不常用)、transform-origin:(x,y)。
注:只设置一个X或Y
属性 | 描述 |
---|---|
translate(x,y) (translateX(x),translateY(y)) | 根据左(X轴)和顶部(Y轴)位置给定的参数,从当前元素位置移动 |
rotate( ) (rotateX(),rotateY() ) | 在一个给定度数顺时针旋转的元素。负值是允许的,这样是元素逆时针旋转 |
scale(宽度,高度) (scaleX(X),scaleY(Y)) | 该元素增加或减少的大小,取决于宽度(X轴)和高度(Y轴)的参数 缩放:设置为负数镜像方式放大缩小 |
skew(Xdeg,Ydeg) (skewX(Xdeg)skewY(Ydeg)) | 包含两个参数值,分别表示X轴和Y轴倾斜的角度,如果第二个参数为空,则默认为0,参数为负表示向相反方向倾斜。 |
matrix(1,2,3,4,5,6)复合属性(注:不常用) | transform:matrix(X缩放,Y倾斜,X倾斜,Y缩放,X平移,Y平移);matrix 方法有六个参数,包含旋转,缩放,移动(平移)和倾斜功能 |
transform-origin(x,y) (transform-originX(X)transform-originY(Y)) | 设置旋转中心点 |
二、过渡
过渡是元素从一种样式逐渐改变为另一种的效果
过渡的方法:
简写属性,用于在一个属性中设置四个过渡属性
transition: css名称|all 过渡时间(必须参数) 运动曲线 开始时间
s|ms(秒或毫秒) s|ms(秒或毫秒)
运动曲线: | 描述 |
---|---|
linear | 匀速 默认值 |
ease | 规定慢速开始,然后变快,然后慢速结束的过渡效果(cubic-bezier(0.25,0.1,0.25,1)) |
ease-in | 规定以慢速开始的过渡效果(等于 cubic-bezier(0.42,0,1,1)) |
ease-out | 规定以慢速结束的过渡效果(等于 cubic-bezier(0,0,0.58,1)) |
ease-in-out | 规定以慢速开始和结束的过渡效果(等于 cubic-bezier(0.42,0,0.58,1)) |
属性 | 描述 |
---|---|
transition-property: | 指定CSS属性的name,transition效果 |
transition-duration: | transition效果需要指定多少秒或毫秒才能完成(默认是 0) |
transition-timing-function: | 指定transition效果的转速曲线 默认是 “ease” |
transition-delay: | 定义transition效果开始的时候(默认是 0) |
三、动画
动画是使元素从一种样式逐渐变化为另一种样式的效果
动画的方法:
@keyframes 规则是创建动画 (name需要绑定到选择器上)
animation: 动画的名称 时间 运动曲线 开始时间 播放次数 是否反向播放 是否运用结束的样式 动画是否运行或暂停;
属性 | 描述 |
---|---|
animation-name: | 指定要绑定到选择器的关键帧的名称 |
animation-duration: | 动画指定需要多少秒或毫秒完成 |
animation-timing-function | 设置动画将如何完成一个周期 |
animation-delay: | 设置动画在启动前的延迟间隔 |
animation-iteration-count: | 定义动画的播放次数(infinite无限播放) |
animation-direction: | 指定是否应该轮流反向播放动画 |
animation-fill-mode: | 规定当动画不播放时(当动画完成时,或当动画有一个延迟未开始播放时),要应用到元素的样式 |
animation-play-state: | 指定动画是否正在运行或已暂停 (paused 指定暂停动画 测试 running 指定正在运行的动画) |
运动曲线 | 描述 |
---|---|
linear | 动画从头到尾的速度是相同的 |
ease | 默认。动画以低速开始,然后加快,在结束前变慢 |
ease-in | 动画以低速开始 |
ease-out | 动画以低速结束 |
ease-in-out | 动画以低速开始和结束 |
是否反向播放 | 描述 |
---|---|
normal | 默认值。动画按正常播放 |
reverse | 动画反向播放 |
alternate | 动画在奇数次(1、3、5…)正向播放,在偶数次(2、4、6…)反向播放 |
alternate-reverse | 动画在奇数次(1、3、5…)反向播放,在偶数次(2、4、6…)正向播放 |
是否运用结束的样式 | 描述 |
---|---|
none | 默认值。动画在动画执行之前和之后不会应用任何样式到目标元素 |
forwards | 在动画结束后(由 animation-iteration-count 决定),动画将应用该属性值 |
backwards | 动画将应用在 animation-delay 定义期间启动动画的第一次迭代的关键帧中定义的属性值。这些都是 from 关键帧中的值(当 animation-direction 为 “normal” 或 “alternate” 时)或 to 关键帧中的值(当 animation-direction 为 “reverse” 或 “alternate-reverse” 时) |
both | 动画遵循 forwards 和 backwards 的规则。也就是说,动画会在两个方向上扩展动画属性 |
代码写法举例:
.boss {
width: 200px;
height: 200px;
background-color: pink;
animation: move 3s linear 0s 1 normal none;
}
@keyframes move{
/* from{
width: 200px;
background-color: pink;
}
to{
background-color: aqua;
height: 500px;
width: 500px;
} */
0% {
width: 200px;
background-color: pink;
}
25% {
background-color: aqua;
height: 500px;
width: 500px;
}
50% {
background-color: orange;
height: 500px;
width: 500px;
}
100% {
background-color: green;
height: 500px;
width: 500px;
}
}