【发布时间】:2014-06-26 05:58:49
【问题描述】:
我正在尝试制作一个带有立方体的 html 页面,所述立方体的每个面上都有按钮。在默认面上,所有按钮都可以正常工作,但是,一旦我旋转立方体,新面就会失去所有交互性。
HTML:
<button type="button" id="button">Toggle</button>
<hr>
<div id="cube">
<div class="face one"></div>
<div class="face two">
<button type="button">All</button>
<button type="button">News</button>
<button type="button">Media</button>
<button type="button">Events</button>
</div>
<div class="face three"></div>
<div class="face four"></div>
<div class="face five">
<button type="button">All</button>
<button type="button">News</button>
<button type="button">Media</button>
<button type="button">Events</button>
</div>
<div class="face six"></div>
</div>
CSS:
#cube {
position: relative;
height: 400px;
-webkit-transition: -webkit-transform 2s linear;
-webkit-transform-style: preserve-3d;
}
.face {
position: absolute;
height: 360px;
background-color:#ffffff;
}
#cube .one {
-webkit-transform: rotateX(90deg) translateZ(200px);
}
#cube .two {
-webkit-transform: translateZ(200px);
}
#cube .three {
-webkit-transform: rotateY(90deg) translateZ(200px);
}
#cube .four {
-webkit-transform: rotateY(180deg) translateZ(200px);
}
#cube .five {
-webkit-transform: rotateY(-90deg) translateZ(200px);
}
#cube .six {
-webkit-transform: rotateX(-90deg) translateZ(200px) rotate(180deg);
}
还有 JS:
$("#button").click(function () {
$('#cube').css("-webkit-transform", "rotateX(0deg) rotateY(90deg)");
});
这是一个展示我的问题的 Fiddle 链接:http://jsfiddle.net/x66yn/
(请注意,该演示仅适用于 webkit 浏览器。)
【问题讨论】:
-
在这种情况下,您将按钮旋转 90 度,这就是按钮未点击的原因。
-
@Tukhsanov 实际上,要让按钮位于立方体后面,那么它必须在 Y 轴上应用 -90 旋转,也许在这个小提琴上更容易注意到:jsfiddle.net/x66yn/9