🧩 1. 3D 变换核心概念

CSS 3D 变换通过 transform 属性实现,关键知识点包括:

  • translate3d(x, y, z):三维平移,创建空间位移效果
  • rotateX(angle) / rotateY(angle):绕X/Y轴旋转,构建立体感
  • scale3d(sx, sy, sz):三维缩放,实现透视层次
  • matrix3d():复杂变换矩阵,适用于高级场景

💡 提示:尝试在浏览器开发者工具中调整 transform-style: preserve-3d 属性,观察元素层级变化

CSS3D_Tutorial

📊 2. 透视与视点设置

.container {
  perspective: 1000px; /* 设置透视效果 */
  transform-style: preserve-3d; /* 保持3D层级 */
}

.viewpoint {
  transform: rotateX(30deg) rotateY(45deg); /* 定义观察角度 */
}

应用场景

  • 产品展示旋转视图
  • 数据可视化立体图表
  • 游戏界面场景切换

🎨 3. 多面体构建技巧

使用多个 div 元素模拟立方体/四面体:

<div class="cube">
  <div class="face front"> front </div>
  <div class="face back"> back </div>
  <div class="face right"> right </div>
  <!-- 其他面 -->
</div>

进阶技巧

  • 使用 clip-path 实现复杂面切割
  • 通过 background-image 添加材质纹理
  • 结合 @keyframes 实现动态旋转

🔄 4. 动态交互实现

document.querySelector('.cube').addEventListener('mousemove', (e) => {
  const xAxis = - (e.pageX / window.innerWidth - 0.5) * 100;
  const yAxis = (e.pageY / window.innerHeight - 0.5) * 100;
  document.querySelector('.cube').style.transform = 
    `rotateX(${yAxis}deg) rotateY(${xAxis}deg)`;
});

效果增强

  • 添加阴影 box-shadow: 0 0 30px rgba(0,0,0,0.3);
  • 使用 transition 实现平滑动画
  • 结合 WebGL 实现更复杂的3D渲染

📚 扩展学习

想要深入掌握3D变换进阶技巧?推荐阅读:

📌 注意:实际开发中建议结合Three.js等库实现更复杂的3D效果

3D_Model_Example