⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 令人震撼的图片展示效果五.html

📁 几个老外写的一个很牛的js
💻 HTML
📖 第 1 页 / 共 2 页
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>6</title>
<meta http-equiv="imagetoolbar" content="no">
<style type="text/css">
html {
overflow: hidden;
}
body {
position: absolute;
margin: 0px;
padding: 0px;
background: #111;
width: 100%;
height: 100%;
}
#screen {
position: absolute;
left: 10%;
top: 10%;
width: 80%;
height: 80%;
background: #000;
}
#screen img {
position: absolute;
cursor: pointer;
visibility: hidden;
width: 0px;
height: 0px;
}
#screen .tvover {
border: solid #876;
opacity: 1;
filter: alpha(opacity=100);
}
#screen .tvout {
border: solid #fff;
opacity: 0.7;
}
#bankImages {
display: none;
}
</style>
<script type="text/javascript">
var Library = {};
Library.ease = function () {
        this.target = 0;
        this.position = 0;
        this.move = function (target, speed)
        {
                this.position += (target - this.position) * speed;
        }
}

var tv = {
        /* ==== variables ==== */
        O : [],
        screen : {},
        grid : {
                size       : 4,  // 4x4 grid
                borderSize : 6,  // borders size
                zoomed     : false
        },
        angle : {
                x : new Library.ease(),
                y : new Library.ease()
        },
        camera : {
                x    : new Library.ease(),
                y    : new Library.ease(),
                zoom : new Library.ease(),
                focalLength : 750 // camera Focal Length
        },

        /* ==== init script ==== */
        init : function ()
        {
                this.screen.obj = document.getElementById('screen');
                var img = document.getElementById('bankImages').getElementsByTagName('img');
                this.screen.obj.onselectstart = function () { return false; }
                this.screen.obj.ondrag        = function () { return false; }
                /* ==== create images grid ==== */
                var ni = 0;
                var n = (tv.grid.size / 2) - .5;
                for (var y = -n; y <= n; y++)
                {
                        for (var x = -n; x <= n; x++)
                        {
                                /* ==== create HTML image element ==== */
                                var o = document.createElement('img');
                                var i = img[(ni++) % img.length];
                                o.className = 'tvout';
                                o.src = i.src;
                                tv.screen.obj.appendChild(o);
                                /* ==== 3D coordinates ==== */
                                o.point3D = {
                                        x  : x,
                                        y  : y,
                                        z  : new Library.ease()
                                };
                                /* ==== push object ==== */
                                o.point2D = {};
                                o.ratioImage = 1;
                                tv.O.push(o);
                                /* ==== on mouse over event ==== */
                                o.onmouseover = function ()
                                {
                                        if (!tv.grid.zoomed)
                                        {
                                                if (tv.o)
                                                {
                                                        /* ==== mouse out ==== */
                                                        tv.o.point3D.z.target = 0;
                                                        tv.o.className = 'tvout';
                                                }
                                                /* ==== mouse over ==== */
                                                this.className = 'tvover';
                                                this.point3D.z.target = -.5;
                                                tv.o = this;
                                        }
                                }
                                /* ==== on click event ==== */
                                o.onclick = function ()
                                {
                                        if (!tv.grid.zoomed)
                                        {
                                                /* ==== zoom in ==== */
                                                tv.camera.x.target = this.point3D.x;
                                                tv.camera.y.target = this.point3D.y;
                                                tv.camera.zoom.target = tv.screen.w * 1.25;
                                                tv.grid.zoomed = this;
                                        } else {
                                                if (this == tv.grid.zoomed){
                                                        /* ==== zoom out ==== */
                                                        tv.camera.x.target = 0;
                                                        tv.camera.y.target = 0;
                                                        tv.camera.zoom.target = tv.screen.w / (tv.grid.size + .1);
                                                        tv.grid.zoomed = false;
                                                }
                                        }
                                }
                                /* ==== 3D transform function ==== */
                                o.calc = function ()
                                {
                                        /* ==== ease mouseover ==== */
                                        this.point3D.z.move(this.point3D.z.target, .5);
                                        /* ==== assign 3D coords ==== */
                                        var x = (this.point3D.x - tv.camera.x.position) * tv.camera.zoom.position;
                                        var y = (this.point3D.y - tv.camera.y.position) * tv.camera.zoom.position;
                                        var z = this.point3D.z.position * tv.camera.zoom.position;
                                        /* ==== perform rotations ==== */
                                        var xy = tv.angle.cx * y  - tv.angle.sx * z;
                                        var xz = tv.angle.sx * y  + tv.angle.cx * z;
                                        var yz = tv.angle.cy * xz - tv.angle.sy * x;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -