jquery - HTML 和 CSS 旋转和缩放 3D 立方体

标签 jquery html css 3d

我用 html 和 css 做了一个立方体。另外,我把 jquery 放在按下按钮时激活 css 类。然而,它们不能正常工作,而且,如果我想在同一方向多次旋转立方体,我需要按两次按钮。我怎样才能解决这个问题?另外,当立方体旋转后,我希望黑色的一面留在一边。目前,每次我转动立方体时,背面都会变黑。和你好一样。另外,如何添加缩放功能,在我滚动时放大和缩小立方体? 我的代码 - http://pastebin.com/qZFfTsuG

最佳答案

希望这段代码能达到你想要的效果。我使用了不同的方法,使用变量 yAngle 来存储当前方向。这是 jsfiddle这段代码。

$(document).ready(function(){
    var yAngle = 0;
    
    $("#button_left").click(function(){
        yAngle = yAngle-90;
        $("section").css("transform",'rotateY('+yAngle+'deg)');
    });
    
    $("#button_right").click(function(){
        yAngle = yAngle+90;
        $("section").css("transform","rotateY("+yAngle+"deg)");
    });
});
.wrap
{
    perspective: 800px;
    perspective-origin: 50% 100px;
}
.cube
{
    margin: 0 auto;
    position: relative;
    width: 200px;
    transform-style: preserve-3d;
    transition: transform 1s;
}
.cube div
{
    box-shadow: inset 0 0 20px rgba(125,125,125,0.9);
    position: absolute;
    width: 200px;
    height: 200px;
}
.back
{
    background: rgba(40,40,40,0.8);
    transform: translateZ(-100px) rotateY(180deg);
}
.right
{
    background: rgba(189,25,400,0.3);
    transform: rotateY(-270deg) translateX(100px);
    transform-origin: top right;
}
.left
{
    background: rgba(189,25,400,0.3);
    transform: rotateY(270deg) translateX(-100px);
    transform-origin: center left;
}
.top
{
    background: rgba(189,25,400,0.3);
    transform: rotateX(-90deg) translateY(-100px);
    transform-origin: top center;
}
.bottom
{
    background: rgba(189,25,400,0.3);
    transform: rotateX(90deg) translateY(100px);
    transform-origin: bottom center;
}
.front
{
    background: rgba(189,25,400,0.3);
    transform: translateZ(100px);
}
/*
@keyframes spin_left {
        from { transform: rotateY(0); }
        to { transform: rotateY(-90deg); }
}
.rotate-left {
        animation: spin_left 1s 1 linear;
}
@keyframes spin_right {
        from { transform: rotateY(0); }
        to { transform: rotateY(90deg); }
}
.rotate-right {
        animation: spin_right 1s 1 linear;
}
*/
<br><br><br><br><br><br><br><br><br><br>
<div class="wrap">
        <section class="cube">
                <div class="front">Hello</div>
                <div class="back"></div>
                <div class="top"></div>
                <div class="bottom"></div>
                <div class="left"></div>
                <div class="right"></div>
        </section>
</div>    
<input type="button" value="<--" id="button_left">
<input type="button" value="-->" id="button_right">
    
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

关于jquery - HTML 和 CSS 旋转和缩放 3D 立方体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31445358/

相关文章:

jquery - 让每个函数从第二个 tr 开始

javascript - 下载图像后或延迟一段时间后执行 jQuery 函数

javascript - 如何在没有 jquery 或需要 main.js 文件的情况下使用 typed.js?

CSS 媒体查询在 Firefox 和 Chrome 中不起作用

javascript - 设置不同有效期的cookie

jquery - Bootstrap 3 弹出窗口可以使用外部 div 来存储内容吗?

php - 使用 PHP 在 .txt 文件中存储可自定义的测验问题和答案

html - 如何缩小两个div之间的空间

html - 高度等于视口(viewport)的方形 DIV

javascript - 如何使用jquery移动数据 block