transform

167 阅读2分钟

一、tranform

  • 四个常用功能

1.tranform之translate

(1)translateX()

移动.png (2)taanslateY()

(3)tranlate( , )

(4)translateZ()且父容器perspeective

(5)translate(x,y,z)

  • 学会看懂MDN的语法事例
  • translate(-50%,-50%)可做绝对定位居中

居中.png

2.translate之scale

(1)常用的写法

  • scaleX()
  • scaleY()
  • scale( , )

缩放.png

  • 这个用的较少,容易出现模糊

3.translate之rotate

(1) rotate([ | ])

(2) rotateX([ | ])

(3) rotateY([ | ])

(4) rotateZ([ | ])

旋转.png

  • 一般用于360度旋转制作loading
  • 用到时可以搜索rotate MDN看文档

3.transform之skew

(1)skewX([|])

(2)skewY([|])

(3)skew([|] , [|])

skew.png

4.transform的多重效果

transform:scale(0.5)tranlate(-100%。-100%);

transform:none;取消所有

二、transition过渡

1.作用:补充中间帧

2.语法

  • transition:属性名 时长 过渡方式 延迟

    transition:left 200ms linear

  • 可以用逗号分隔两个不同属性

    transition:left 200ms,top 400ms

  • 可以用all代表所有属性

    transition:all 200ms

  • 过渡方式有:linear|ease|ease-in|ease-out|ease-in-out|cubic-bazier|step-start|step-end|step,具体含义(要靠数学知识)

注意:

  • 并不是所有属性都能过渡 (1)display:none => block 没法过渡 (2)一般改成visibility:hidden => visible (3)background颜色可以过渡 (4)opacity也可以过渡
  • 过渡要有起始(一般只有一次动画或者两次,比如hover和非hover过渡状态)
  • 如果除了有起始,还有中间点怎么办

两种方法:

1.使用两次transform

  • .a=== transform ===>.b
  • .b=== transform ===>.c
  • 用setTimeout或者监听transitionend事件

中间点.png

2.使用animation

  • 声明关键帧(@keyframes)
  • 添加动画

image.png

  • 如果想要动画停在最后一帧,可以搜索css animation stop at end,就是在后面加forwords

停止.png

3.@keyframes完整语法

  • 可搜索keyframes MDN了解更多
  • 百分比写法

百分比.png

  • from to写法

image.png

三、animation

1.缩写语法

animation:时长|过渡方式|延迟|次数|方向|填充模式|是否暂停|动画名;

  • 时长:1s或者1000ms

  • 过渡方式:跟transition取值一样,如linear

  • 次数:3或者2.4或者infinite

  • 方向:reverse|alternate|alternate-reverse

  • 填充模式:none|forwards|backwards|both

  • 是否暂停:pause|running

  • 以上所有属性都有对应的单独属性