css - 如何旋转父元素以在 3D 空间中显示旋转的子元素

标签 css 3d rotation transform css-transforms

我正在创建一个允许开发人员通过数据属性在 2D 和 3D 空间中旋转元素的应用程序。以下将步骤 2 在 X 轴上旋转 90 度:

<div id="container">
  <div id="canvas">
    <div class="step">
      Step 1
    </div>
    <div class="step" data-rotate-x="90">
      Step 2
    </div>
  </div>
</div>

一次显示一个步骤。应用程序将旋转 Canvas 以显示每个步骤。为此,我进行了每个步骤的旋转并反转它们,因此当导航到第 2 步时, Canvas 将提供以下内容:

<div id="canvas" style="transform: rotateX(-90deg);">

我遇到的问题是在一个步骤应用多个旋转时计算必要的旋转。

演示 1:http://jsbin.com/zafek/1/edit - 显示应用程序在 X 轴上旋转应用于步骤 2。

演示 2:http://jsbin.com/rices/2/edit - 在第 2 步同时应用 X 和 Y,但如您所见,它错误地旋转了 Canvas 。

任何人都可以协助解决所涉及的数学问题吗?

最佳答案

旋转的顺序很重要,因为每次旋转都会更改下一次旋转的轴。

在演示 2 中,看起来你应该在 X 之前旋转 Y:

-webkit-transform: rotateY(-90deg) rotateX(-90deg) rotateZ(0deg);

关于css - 如何旋转父元素以在 3D 空间中显示旋转的子元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24244833/

相关文章:

html - 无法使最大宽度与 Bootstrap 多级下拉菜单一起使用

c# - XNA 顶点法线计算不适用于立方体

ios - Xcode 自动布局和旋转

css - 输入第一个字母后不显示文本

javascript - jquery 通过 .html() 访问元素返回未定义

python - 如何在 python 中创建 3D 高度图

3d - 任何使用 SpriteKit 在 2D 游戏中模拟 3D 球运动的方法?

rotation - 将段落或单元格旋转任意度数——Itext

ios - 旋转 UIView;如何防止旋转过程中的剪裁?

javascript - 'Show More' & 'Show Less' with jQuery for an article website