CSS css3动画

129 阅读1分钟

transition:平滑过渡(补间动画)

  • 自动完成从起始状态到终止状态的的过渡

    • 不管中间的状态
  • transition-property: width / all

2D 转换 transform

  • 缩放:scale

    • transform: scale(2, 0.5)
  • 位移:translate

    • transform: translate(水平位移, 垂直位移)
  • 旋转:rotate

    • transform: rotate(角度)

3D 转换 transform

  • 旋转:rotateX、rotateY、rotateZ

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

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

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

    • 最好加透视:perspective: 110px

      • /* 透视 :加给变换的父盒子*/

      • /* 设置的是用户的眼睛距离 平面的距离*/

      • /* 透视效果只是视觉上的呈现,并不是真正的3d*/

  • 移动:translateX、translateY、translateZ

  • 透视:perspective

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

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

  • 3D呈现(transform-style)

    • transform-style: preserve-3d; //让 子盒子 位于三维空间里

    • transform-style: flat; //让子盒子位于此元素所在的平面内(子盒子被扁平化)

动画:animation

  • 可通过设置多个节点 来精确控制一个或一组动画,常用来实现复杂的动画效果

  • 定义动画的步骤

旋转

  • {transform:rotate(7deg);
  • -webkit-transform:rotate(7deg)
    • /* Safari 和 Chrome */

淡入淡出

/* fades in upon hover */
.fadeIn {
  opacity: 0;
}
.fadeIn:hover {
  opacity: 1;
}
/* basic fadein */
@keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
.fadeIn {
  animation-name: fadeIn;
  opacity: 1;
}

动画性能优化

设置不允许复制文本

  • user-select:none