区分 animation(动画)、transition(过渡)、 transform(变形)、translate(平移);理解各个 css 属性对应的常用取值与应用
transform——对元素 2D 或 3D 转换
1 | transform: none|transform-functions; |
transform-functions——对应函数有如下:
- translate:平移
- scale:缩放
- rotate(angle):旋转
- skew(angle):倾斜
备注:
- 以上函数基于平面,其他对应的有-X、-Y、-3d,分别对应 X 轴、Y 轴、3D 转换
- transform-functions 接受多个函数,eg:
1
transform: translate(10px,20px) scale(.5,.5);
transition——定义过渡状态的过程
1 | transition{ transition-property transition-duration transition-timing-function transition-delay} |
对应属性值概念如下:
- transition-delay
- transition-duration
- transition-property
- transition-timing-function——对应值
- linear:匀速
- ease-in:加速
- ease-out:减速(ease-in-out)
- cubic-bezier 函数:自定义速度模式
触发方式:
- 伪类触发::hover : focus :checked :active
- js 触发:toggleClass
注意:
- IE10+
- 不是所有的CSS属性都支持transition
- transition的优点在于简单易用,但是它有几个很大的局限。
- transition需要事件触发,所以没法在网页加载时自动发生。
- transition是一次性的,不能重复发生,除非一再触发。
- transition只能定义开始状态和结束状态,不能定义中间状态,也就是说只有两个状态。
- 一条transition规则,只能定义一个属性的变化,不能涉及多个属性。
Animation——定义帧动画(指定动画一个周期持续的时间,以及动画效果)
1 | animation: 1s 1s actionName linear 3 forwards normal; |
对应属性值
1 | animation-delay: 1s; |
简写
1 | animation: 1s 1s rainbow linear 3 forwards normal; |
动画事件对应处理
1 | @keyframes name { |
