js楼盘模型360度旋转动画效果

当前位置:主页 > CSS3库 > CSS3动画 > js楼盘模型360度旋转动画效果
js楼盘模型360度旋转动画效果
分享:

    插件介绍

    这是一款使用css3和js制作的楼盘模型360度旋转动画。这种效果你一定曾今在科幻电影中看到过。这个js 3d动画中整个楼盘模型绕一个中心点不断的做360度旋转,3d效果十分逼真。

    浏览器兼容性

    浏览器兼容性
    时间:11-03
    阅读:

简要教程

看过《生化危机》吗?一演到地下实验室的时候都会一段整个建筑3D旋转的效果。本插件的楼盘模型360度旋转效果就和那种效果类似。

HTML

只需要一个空的div,然后在运行时用js往里面插入需要的节点。

<div id="demo"></div>
                

JAVASCRIPT

var D = {
    base: 6,
    size: 40,
    space: 6,
    height: {
        min: 10,
        max: 80
    },
    type: ['a', 'b', 'c', 'd', 'e'],
    bldg: '',
    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();
                

css部分请参考下载文件中的代码。