CSS3动画与过渡

时间:2021-06-18 14:33:58

transform:在使用2D或3D转换前需用transform-style申明转换的类型,preserve-3d或者preserve-2d

属性

  translate():

    通过 translate() 方法,元素从其当前位置移动,根据给定的 left(x 坐标) 和 top(y 坐标) 位置参数移动。

  rotate():

    通过 rotate() 方法,元素顺时针旋转给定的角度。允许负值,元素将逆时针旋转.

    在3D下,有rotateX():向屏幕例外翻转;rotateY():在屏幕左右翻转,rotateZ():与2d下rotate()相同,在屏幕上顺时针或逆时针旋转。

  scale():

    通过 scale() 方法,元素的尺寸会增加或减少,根据给定的宽度(X 轴)和高度(Y 轴)参数

  skew():

    通过 skew() 方法,元素翻转给定的角度,根据给定的水平线(X 轴)和垂直线(Y 轴)参数

transition:在不使用 Flash 动画或 JavaScript 的情况下,当元素从一种样式变换为另一种样式时为元素添加效果

必须规定两项内容:

  • 规定您希望把效果添加到哪个 CSS 属性上
  • 规定效果的时长

例:transition:width 2s;

样式:ease 平缓变化  

  linear均匀变化

  ease-in 缓慢开始

  ease-out 缓慢结束

  ease-in-out 缓慢开始,缓慢结束

动画:首先要先用@keyframe 动画名  的格式定义一个动画,再用animation调用动画

@keyframe myfirst{

  from{}//开始效果

  to{}//结束效果

}

或@keyframe myfirst{

  0%{}      //也可以用百分比表示动画的进程

  30%{}

  70%{}

  100%{}

}

animation:

  animation-name: myfirst;   //动画名
  animation-duration: 5s;//动画时长
  animation-timing-function: linear;//动画变化效果,同transition
  animation-delay: 2s;//动画延迟播放时间
  animation-iteration-count: infinite;//infinite定义为无线循环
  animation-direction: alternate;//规定动画是否在下一周期逆向地播放。默认是 "normal"。

  animation-play-state:running//规定动画是否正在运行或暂停。默认是 "running"。