transform
四个常用功能
- 位移
translate
- 缩放
scale
- 旋转
rotate
- 倾斜
skew
transform
经验
- 一般都需配合
transition
过渡 inline
元素不支持transform
,需先变成block
位移translate
常用写法
translateX(<length-percentage>)
translateY(<length-percentage>)
translate(<length-percentage>,<length-percentage>?)
translateZ(<length>)
并且父容器是perspective
translate3d(x,y,z)
demo
translate
经验
- 看懂 MDN 语法格式,自学无碍
translate(-50%,-50%)
可做绝对定位元素的居中
缩放scale
常用写法
scaleX(<number>)
scaleY(<number>)
scale(<number>,<number>?)
demo
scale
经验
不常用,易出现模糊
旋转rotate
常用写法
rotate([ <angle> | <zero> ])
rotateZ([ <angle> | <zero> ])
rotateX([ <angle> | <zero> ])
rotateY([ <angle> | <zero> ])
rotate3d()
较复杂
demo
rotate
经验
- 常用于 360 旋转制作 loading
- 用到时再搜索
rotate MDN
看文档
倾斜skew
常用写法
skewX([ <angle> | <zero> ])
skewY([ <angle> | <zero> ])
skew([ <angle> | <zero> ],[ <angle> | <zero> ])
demo
skew
经验
- 用得少
- 用到时再在搜索
skew MDN
看文档
transform
多重效果
组合使用
transform:scale(0.5) translate(-100%,-100%);
transform:none;
取消所有
CSS 需要想象力,而不是逻辑
CSS 给出的属性都很简单,但组合得很复杂
transition
过渡
作用
补充中间帧
语法
transition: 属性名 时长 过渡方式 延迟
eg.
transition: left 200ms linear
- 可以用逗号分隔两个不同属性
eg.
transition: left 200ms linear, top 400ms
- 可以用
all
代表所有属性
eg.
transition: all 200ms
- 过渡方式有
linear | ease | ease-in | ease-out | ease-in-out | cubic-bezier | step-start | step-end | steps
注意
并不是所有属性都能加上「过渡」
display:none=>block
没法加过渡- 一般改成
visibility:hidden=>visible
display
和visibility
的区别background
和opacity
可以加过渡
过渡必须要有起始
一般只有一次动画,或者两次
比如
hover
和非hover
状态的过渡
「除了起始,还存在中间点」的情况处理方法
两种办法
使用两次transform
.a
====>transform
====>b
.b
====>transform
====>c
如何知道有中间点?
用setTimeout
或者监听transitionend
事件(JS)
demo
使用animation
- 声明关键帧
- 添加动画
demo
如何让动画停在最后一帧?
- 搜索
css animation stop at end
- 加个
forward
demo
参考文章
相关文章
- 无
- 作者: Joel
- 文章链接:
- 版权声明
- 非自由转载-非商用-非衍生-保持署名
- 河 掘 思 知 简