rotate3d() - 3D 旋转

围绕自定义 3D 轴旋转元素

语法说明

transform: rotate3d(x, y, z, angle);
  • x, y, z - 定义旋转轴的 3D 向量(0-1 之间的数值)
  • angle - 旋转角度
  • rotate3d(1, 0, 0, 45deg) = rotateX(45deg)
  • rotate3d(0, 1, 0, 45deg) = rotateY(45deg)
  • rotate3d(0, 0, 1, 45deg) = rotateZ(45deg)
  • 可以组合多个轴创建对角线旋转

示例 1:单轴旋转

分别围绕 X、Y、Z 轴旋转

X 轴旋转

X轴

Y 轴旋转

Y轴

Z 轴旋转

Z轴
/* X 轴旋转 */
.box-x {
  transform: rotate3d(1, 0, 0, 60deg);
}

/* Y 轴旋转 */
.box-y {
  transform: rotate3d(0, 1, 0, 60deg);
}

/* Z 轴旋转 */
.box-z {
  transform: rotate3d(0, 0, 1, 60deg);
}

示例 2:对角线旋转

同时在多个轴上旋转,创建对角线旋转效果

XY 对角线

XY
rotate3d(1, 1, 0, 180deg)

XYZ 全方向

XYZ
rotate3d(1, 1, 1, 180deg)

示例 3:连续 3D 旋转动画

创建立体旋转效果

3D
@keyframes rotate3d-animation {
  0% {
    transform: rotate3d(1, 1, 1, 0deg);
  }
  100% {
    transform: rotate3d(1, 1, 1, 360deg);
  }
}

.box {
  animation: rotate3d-animation 3s linear;
}

提示:rotate3d 可以创建任意方向的 3D 旋转,非常适合复杂的 3D 动画效果

常见应用场景