以下是 js+css3实现楼盘模型旋转动画效果代码 的示例演示效果:
部分效果截图:

HTML代码(index.html):
<!DOCTYPE html>
<html>
<head>
<meta charset='UTF-8'>
<title>js+css3实现楼盘模型旋转动画效果</title>
<style class="cp-pen-styles">html {
    position: relative;
    width: 100%; height: 100%;
    min-width: 400px;
    min-height: 400px;
}
body {
    margin: 0;
    top: 0; left: 0;
    height: 100%; width: 100%;
    /*background: #F2F9FF;*/
    background-image:-webkit-radial-gradient(circle at top right,#5596BC,#75BEC7);
    background-image:-moz-radial-gradient(circle at top right,#5596BC,#75BEC7);
    background-image:-o-radial-gradient(circle at top right,#5596BC,#75BEC7);
    background-image:-ms-radial-gradient(circle at top right,#5596BC,#75BEC7);
    background-image:radial-gradient(circle at top right,#5596BC,#75BEC7);
    -webkit-perspective: 500px;
    -moz-perspective: 500px;
    perspective: 500px;
}
div, a, b, i {
    position: absolute;
    -webkit-transform-style: preserve-3d;
    -moz-transform-style: preserve-3d;
    transform-style: preserve-3d;
    
}
a, b, i {
    box-shadow: inset 0 0 1px rgba(35,49,51,1);
}
a, b {
    background-position: center center;
}
#demo {
    top: 50%; left: 50%;
    box-shadow: 0 0 0 12px rgba(208,228,239,1);
    -webkit-animation: spin 16s linear infinite;
    -moz-animation: spin 16s linear infinite;
    animation: spin 16s linear infinite;
}
#demo div {
}
#demo div a {
    bottom: 0; left: 0;
    width: 100%;
    -webkit-transform: rotateX(-90deg);
    -moz-transform: rotateX(-90deg);
    transform: rotateX(-90deg);
    -webkit-transform-origin: 0 100%;
    -moz-transform-origin: 0 100%;
    transform-origin: 0 100%;
}
#demo div b {
    top: 0; left: 100%;
    height: 100%;
    -webkit-transform: rotateY(90deg);
    -moz-transform: rotateY(90deg);
    transform: rotateY(90deg);
    -webkit-transform-origin: 0 0;
    -moz-transform-origin: 0 0;
    transform-origin: 0 0;
}
#demo div i {
    left: 0; bottom: 100%;
    -webkit-transform: rotateX(90deg);
    -moz-transform: rotateX(90deg);
    transform: rotateX(90deg);
    -webkit-transform-origin: 0 100%;
    -moz-transform-origin: 0 100%;
    transform-origin: 0 100%;
}
#demo a {
    background-color: rgba(176,208,223,0.9);
}
#demo a > b {
    background-color: rgba(128,174,197,0.9);
}
#demo a > b > b {
    background-color: rgba(176,208,223,0.9);
    
}
#demo a > b > b > b {
    background-color: rgba(128,174,197,0.9);
}
#demo i {
    background-color: rgba(237,248,254,0.9);
}
div.a a, div.a b {
    background-image: url('img/hGf4V.png');
}
div.b a, div.b b {
    background-image: url('img/lWCVU.png');
}
div.c a, div.c b {
    background-image: url('img/lzWht.png');
}
div.d a, div.d b {
    background-image: url('img/2LXlE.png');
}
div.e a, div.e b {
    background-image: url('img/uP9er.png');
}
@-webkit-keyframes spin {
    from {-webkit-transform: rotateX(60deg) rotateZ(-180deg);}
    to   {-webkit-transform: rotateX(60deg) rotateZ(180deg);}
}
@-moz-keyframes spin {
    from {-moz-transform: rotateX(60deg) rotateZ(-180deg);}
    to   {-moz-transform: rotateX(60deg) rotateZ(180deg);}
}
@keyframes spin {
    from {transform: rotateX(60deg) rotateZ(-180deg);}
    to   {transform: rotateX(60deg) rotateZ(180deg);}
}</style></head><body>
<div id="demo">
    <!--
    W - width, H - height, L - length
    
    <div> -> width: W, height: H
    <a>   -> height: L
    <b>   -> width: H
    <b>   -> width: W
    <b>   -> width: H
    <i>   -> width: H; height: W
    -->
</div>
<script>var D = {
    
    base: 6,
    size: 40,
    space: 6,
    height: {
        min: 10,
        max: 80
    },
    type: ['a', 'b', 'c', 'd', 'e'],
    bldg: '<a><b><b><b><i></i></b></b></b></a>',
    
    Random: function(min, max) {
        var value = Math.random() * (max - min) + min;
        return Math.round(value);
    },
    
    
    Build: function() {
        for (var x = 0; x < D.base; x++) {
            for (var y = 0; y < D.base; y++) {
                
                var e = D.data[x * D.base + y];
                var w = D.Random(D.space, D.size - D.space);
                var h = D.Random(D.space, D.size - D.space);
                var l = D.Random(D.space / 2, D.size - w);
                var t = D.Random(D.space / 2, D.size - h);
                var z = D.Random(D.height.min, D.height.max);
                var i = D.Random(0, D.type.length - 1);
                var c = e.getElementsByTagName('*');
                
                e.className = D.type[i];
                
                e.style.width = w + 'px';
                e.style.height = h + 'px';
                e.style.left = x * D.size + l + 'px';
                e.style.top = y * D.size + t + 'px';
                
                c[0].style.height = z + 'px';
                c[1].style.width = h + 'px';
                c[2].style.width = w + 'px';
                c[3].style.width = h + 'px';
                c[4].style.width = h + 'px';
                c[4].style.height = w + 'px';
            }
        }
    },
    
    Create: function() {
        for (var i = 0; i < D.base * D.base; i++) {
            var div = document.createElement('div');
            div.innerHTML = D.bldg;
            D.demo.appendChild(div);
        }
        D.data = D.demo.getElementsByTagName('div');
    },
    
    Init: function() {
        var l = D.base * D.size;
        D.demo = document.getElementById('demo');
        D.demo.style.width = D.demo.style.height = l + 'px';
        D.demo.style.marginTop = D.demo.style.marginLeft = -l / 2 + 'px';
        D.demo.addEventListener('click', D.Build, false);
    },
    
    Run: function() {
        D.Init();
        D.Create();
        D.Build();
    }
    
};
D.Run();
</script>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
</body>
</html>
 
             
        