css - CSS3 中的反向 3d 旋转 - 透视原点,变换原点?

标签 css 3d rotation

我正在尝试在父容器上使用 CSS3 进行 3D 旋转...例如-webkit-transform: rotateY(30deg),但反转 child 的旋转,例如-webkit 变换:旋转 Y(-30 度)。我希望 children 从观看者的 Angular 来看是“扁平的”。当我对 child 应用旋转时,会发生一些变化,即它在某种程度上旋转,但不正确。我很确定我的问题要么与透视原点有关,要么与变换原点有关,但我不太清楚如何设置其中任何一个的值来解决它。我创建了一个 fiddle 来演示这个问题。

http://jsfiddle.net/bobsmells/ndn83/2/

只是为了确认一下,我希望子 div 仍然存在于同一个 3D 空间中,即右边的 div 应该看起来更小,因为它离得更远,但我希望两个子 div 都没有旋转。

<div class="grandparent">
<div class="parent">
    <div class="child1"></div>
    <div class="child2"></div>
</div>
</div>

.grandparent{
    -webkit-perspective: 500;
    -webkit-transform-style: preserve-3d;
    -webkit-perspective-origin: 50% 50%;
}

.parent {
    position: relative;
    background-color: yellow;
    width: 200px;
    height: 150px;
    -webkit-transform: rotateY(30deg) ;
}

.child1 {
    position: absolute;
    top: 20px;
    left: 20px;
    background-color: green;
    width: 50px;
    height: 50px;
    -webkit-transform: rotateY(-30deg) ;
}

.child2 {
    position: absolute;
    top: 20px;
    left: 120px;
    background-color: green;
    width: 50px;
    height: 50px;
    -webkit-transform: rotateY(-30deg) ;
}

最佳答案

您必须在父级中设置 -webkit-transform-style: preserve-3d;如果它在祖 parent 中,则不会影响 child 。

(可能它应该“级联”,但实际上没有)。

一旦你这样做了,你会发现 children 是看不见的,因为他们在 parent 的后面,但那是另一回事了。使父级半透明,您将看到它们。

关于css - CSS3 中的反向 3d 旋转 - 透视原点,变换原点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19648812/

相关文章:

java - 在 libgdx 中旋转 ShapeRenderer 时出现视觉伪影

c++ - 四元数旋转opengl

html - 在 Sass 文件中创建混合

html - 按钮在 Safari 中未居中对齐

html - 为什么 HTML header 选择他之前的所有 div?

html - 结合 bootstrap 的 MarkItUp 渲染问题

opengl - 什么样的几何体适合渲染 Twig

algorithm - 对公式已知的表面进行光线追踪的最有效方法是什么?

python - OpenCV Python : rotate image without cropping sides

iphone - 在 OpenGL ES 2.0 中切换着色器是否会影响性能?