下载本资源原文网址:http://www.daima.org/js/js17207.html 图片中藏着另外一个图片,点击后可以放大,放大的图片里面又藏着一个图片,还可以放大,如此下去,世界无穷无尽,太酷了 第一步: 下载全部源代码及演示图片
第二步: 在<head>区添加以下代码 [code] <style type="text/css"> body { background: #222; overflow: hidden; left: 0; top: 0; width: 100%; height: 100%; margin: 0; padding: 0; } #screen img { position: absolute; visibility: hidden; } #screen span { position: absolute; background: #fff; cursor: pointer; visibility: hidden; filter: alpha(opacity=80); -moz-opacity: 0.8; opacity: 0.8; } </style> <script type="text/javascript"> /***************************************************** * Share JavaScript (//www.ShareJS.com) * 使用此脚本程序,请保留此声明 * 获取此脚本以及更多的JavaScript程序,请访问 //www.ShareJS.com ******************************************************/ <!-- var Oz, Ov; var obj = []; var K = 0; var img, scr, W, H; var SP = 40; /* speed */ var dz = false; /* html positioning */ position = function(obj, x, y, w, h) { with(obj.style){ left = Math.round(x) + "px"; top = Math.round(y) + "px"; width = Math.round(w) + "px"; height = Math.round(h) + "px"; } } /* create object instances */ function Cobj(parent, N, x, y, w, h) { this.zoomed = (parent ? 0 : 1); obj[K] = this; this.K = K ++; this.parent = parent; this.children = []; this.x = x; this.y = y; this.w = w; this.h = h; this.vx = 0; this.vy = 0; this.vw = 0; this.vh = 0; this.xi = 0; this.yi = 0; this.wi = 0; this.hi = 0; this.x1 = 0; this.y1 = 0; this.w1 = 0; this.h1 = 0; this.x0 = 0; this.y0 = 0; this.w0 = 0; this.h0 = 0; this.imgsrc = img[N]; /* create HTML elements */ this.img = document.createElement("img"); this.img.src = this.imgsrc.src; this.img.obj = this; scr.appendChild(this.img); this.spa = document.createElement("span"); this.spa.style.cursor = "pointer"; this.spa.obj = this; scr.appendChild(this.spa); if (parent) parent.children.push(this); /* Flickr */ this.blink = function() { with(this) { position(spa, x0, y0, w0, h0); spa.style.visibility = "visible"; img.style.cursor = "pointer"; setTimeout("obj[" + K + "].spa.style.visibility='hidden'", 128); } } /* display image & children */ this.display = function(zoomed) { with(this) { position(img, x0, y0, w0, h0); img.style.visibility = "visible"; if (parent && ! zoomed) { blink(); Ov = img; } } } /* init zoom */ this.init_zoom = function(d) { with(this) { w1 = imgsrc.width; h1 = imgsrc.height; x1 = (W - w1) / 2; y1 = (H - h1) / 2; x0 = (parent ? x + parent.x1 : (W - w1) / 2); y0 = (parent ? y + parent.y1 : (H - h1) / 2); w0 = (parent ? w : w1); h0 = (parent ? h : h1); xi = d > 0 ? x0 : x1; yi = d > 0 ? y0 : y1; wi = d > 0 ? w0 : w1; hi = d > 0 ? h0 : h1; vx = d * (x1 - x0) / SP; vy = d * (y1 - y0) / SP; vw = d * (w1 - w0) / SP; vh = d * (h1 - h0) / SP; parent.vx = d * ((x1 - (x * w1 / w0)) - parent.x1) / SP; parent.vy = d * ((y1 - (y * h1 / h0)) - parent.y1) / SP; parent.vw = vw * (parent ? (parent.w1 / w) : 0); parent.vh = vh * (parent ? (parent.h1 / h) : 0); } } /* animate zoom in - out */ this.zoom = function() { with(this) { xi += vx; yi += vy; wi += vw; hi += vh; parent.xi += parent.vx; parent.yi += parent.vy; parent.wi += parent.vw; parent.hi += parent.vh; position(img, xi, yi, wi, hi); position(parent.img, parent.xi, parent.yi, parent.wi, parent.hi); if ((zoomed == 0 && wi > w0 - vw) || (zoomed == 1 && wi < w1 - vw)) { setTimeout("obj[" + K + "].zoom()", 16); } else { dz = false; for (var i in Oz.children) { Oz.children[i].init_zoom(); Oz.children[i].display(false, false); } } } } /* mouse events */ this.img.onmouseover = function() { if (this != Ov) with(this.obj) if (parent && ! zoomed && ! dz) blink(); Ov = this; return false; } this.img.onclick = function() { with(this.obj) { if (parent && !dz && imgsrc.complete) { if (zoomed == 1) { /* zoom out */ Oz = this.obj.parent; zoomed = 0; init_zoom( -1); for (var i in children) children[i].img.style.visibility = "hidden"; parent.zoomed = 1; dz = true; zoom(); } else if (zoomed == 0) { /* zoom in */ Oz = this.obj; img.style.cursor = "crosshair"; zoomed = 1; init_zoom(1); for (var i in parent.children) { if (this.obj != parent.children[i]) parent.children[i].img.style.visibility = "hidden"; } parent.zoomed = -1; dz = true; zoom(); } } } return false; } this.spa.onmousedown = function() { this.style.visibility="hidden"; this.obj.img.onclick(); return false; } } /* initialization */ /* must start after the first image is loaded */ function starter() { scr = document.getElementById("screen"); img = document.getElementById("images").getElementsByTagName("img"); W = parseInt(scr.style.width); H = parseInt(scr.style.height); /* ==== tree-zoom ==== */ // new Cobj(parent, image, x, y, w, h) O = new Cobj(0, 0, 0, 0, 0, 0); O0 = new Cobj(O, 1, 127, 98, 181, 134); O1 = new Cobj(O0, 2, 158, 150, 85, 155); O11 = new Cobj(O1, 4, 136, 98, 80, 196); O111 = new Cobj(O11, 5, 20, 154, 70, 57); O1111 = new Cobj(O111, 6, 161, 137, 154, 76); O112 = new Cobj(O11, 11, 155, 154, 70, 57); O1121 = new Cobj(O112, 12, 273, 116, 49, 72); O2 = new Cobj(O0, 3, 281, 150, 90, 154); O21 = new Cobj(O2, 7, 35, 295, 133, 82); O211 = new Cobj(O21, 15, 316, 183, 20, 36); O22 = new Cobj(O2, 8, 179, 295, 127, 79); O221 = new Cobj(O22, 13, 132, 84, 54, 102); O2211 = new Cobj(O221, 14, 6, 234, 69, 50); O22111 = new Cobj(O2211, 14, 267, 90, 135, 98); O23 = new Cobj(O2, 9, 92, 148, 138, 76); O231 = new Cobj(O23, 10, 249, 106, 83, 65); O2311 = new Cobj(O231, 0, 120, 87, 57, 59); /* display */ O.init_zoom(1); O.display(true); for (var i in O.children) { O.children[i].init_zoom(1); O.children[i].display(true); } } //--> </script> [/code] 第三步: 在<body>区添加以下代码 [code] <div style="position:absolute;left:50%;top:50%"> <div style="position:absolute;left:-220px;top:-170px;width:440px;height:340px;background:#000"></div> <div id="screen" style="position:absolute;left:-200px;top:-150px;width:400px;height:300px;overflow:hidden"> </div> </div> <div id="images" style="position:absolute;left:-10000px;top:-10000px;"> <img onload="setTimeout('starter();',500)" src="wi37.jpg"> <img src="wi2.jpg"> <img src="wi7.jpg"> <img src="wi20.jpg"> <img src="wi3.jpg"> <img src="wi10.jpg"> <img src="wi30.jpg"> <img src="wi11.jpg"> <img src="wi21.jpg"> <img src="wi29.jpg"> <img src="wi19.jpg"> <img src="wi27.jpg"> <img src="wi33.jpg"> <img src="wi35.jpg"> <img src="wi42.jpg"> <img src="wi15.jpg"> </div> [/code] |