2019-11-26

## css3动画

  过渡:transition

  2D 转换 transform

  3D 转换 transform

  动画:animation

## transition

1. 含义:中文含义是过渡 可以实现元素不同状态间的平滑过渡(补间动画),经常用来制作动画效果。

    补间动画:自动完成从起始状态到终止状态的的过渡。不用管中间的状态

    帧动画:通过一帧一帧的画面按照固定顺序和速度播放。如电影胶片

    (帧: 帧——就是影像动画中最小单位的单幅影像画面,相当于电影胶片上的每一格镜头。 一帧就是一副静止的画面,连续的帧就形成动画,如电视图象等)

2. 属性

    transition-property: all; 如果希望所有的属性都发生过渡,就使用all。

    transition-duration: 1s; 过渡的持续时间。

    transition-timing-function: linear; 运动曲线。属性值可以是:


      linear 线性  ease 减速  ease-in 加速  ease-out 减速  ease-in-out 先加速后减速

    transition-delay: 1s; 过渡延迟。多长时间后再执行这个过渡动画。

        格式:transition: 让哪些属性进行过度 过渡的持续时间 运动曲线 延迟时间;

        eg:transition: all 3s linear 0s;

## transform  位移、旋转、变形、缩放

 2D转换包括:缩放、移动、旋转。

  1. 缩放:scale

    格式:   transform: scale(x, y);

      eg:   transform: scale(2, 0.5);

    参数解释: x:表示水平方向的缩放倍数。y:表示垂直方向的缩放倍数。如果只写一个值就是等比例缩放。

    取值:大于1表示放大,小于1表示缩小。不能为百分比。

  2. 位移:translate

    格式:  transform: translate(水平位移, 垂直位移);

      eg:  transform: translate(-50%, -50%);

      参数为百分比,相对于自身移动。

      正值:向右和向下。 负值:向左和向上。如果只写一个值,则表示水平移动。

  3. 旋转:rotate  (小火箭例子)

    格式: transform: rotate(角度);

     eg:   transform: rotate(45deg);

     参数解释:正值 顺时针;负值:逆时针。


  4. 倾斜 skew

    (1) skew(xdeg)

      向横向倾斜指定度数

      x取值为正,X轴不动,y轴逆时针倾斜一定角度

      x取值为负,X轴不动,y轴顺时针倾斜一定角度


    (2) skew(xdeg,ydeg)

      纵向倾斜度数

      y取值为正,y轴不动,x轴顺时针倾斜一定角度

      y取值为负,y轴不动,x轴逆时针倾斜一定角度

  3D 转换

    1. 旋转:rotateX、rotateY、rotateZ

      格式:

    transform: rotateX(360deg);    //绕 X 轴旋转360度

    transform: rotateY(360deg);    //绕 Y 轴旋转360度

    transform: rotateZ(360deg);    //绕 Z 轴旋转360度

    2. 移动:translateX、translateY、translateZ

      格式:

    transform: translateX(100px);    //沿着 X 轴移动

    transform: translateY(360px);    //沿着 Y 轴移动

    transform: translateZ(360px);    //沿着 Z 轴移动

    3. 透视:perspective  (近大远小)

      作为一个属性,设置给父元素,作用于所有3D转换的子元素

      作为 transform 属性的一个值,做用于元素自身。

## 动画 animation

  1. 定义动画的步骤

    (1)通过@keyframes定义动画;

    (2)将这段动画通过百分比,分割成多个节点;然后各节点中分别定义各属性;

    (3)在指定元素里,通过 animation 属性调用动画。   


     定义动画:(先定义,再调用)

        @keyframes 动画名{

            from{ 初始状态 }

            to{ 结束状态 }

        }

     调用:

      animation: 动画名称 持续时间;

      animation属性的格式:animation: 定义的动画名称 持续时间  执行次数  是否反向  运动曲线 延迟执行。(infinite 表示无限次)

          eg:  animation: move2 4s;

       steps()的效果--->钟表

你可能感兴趣的:(2019-11-26)