绝对优秀的点图效果

绝对优秀的点图效果

 <html>
 <head>
 <title>类似于Flash制作的一个图片展示效果</title>
 <meta name="Author" content="<a href=\"http://www.webjx.com/\">http://www.webjx.com</a>">
 <meta http-equiv="imagetoolbar" content="no">
 <style type="text/css">
 body {cursor:crosshair;margin:0; padding:0; position:absolute; overflow:hidden; background:#222; left:0; top:0; width:100%; height:100%;zIndex:-2;}
 </style>

<script type="text/javascript"><!--
 // ====================================================

window.onerror = new Function("return true");
 screen.bufferDepth = 16;
 document.onselectstart = function () { return false; }

////////////////////////////
 var NX     = 3;
 var NY     = 3;
 var SP     = 20;
 var DELAY  = 96;
 ////////////////////////////

var object = new Array();
 var nI     = 0;
 var run    = false;
 var xrun   = 0;
 var dR     = 1;
 var iW     = 0;
 var iH     = 0;
 var oH     = 0;
 var oW     = 0;

function CObj(N,y,x){

this.obj = document.createElement("span");
 this.obj.onclick = new Function("object["+N+"].GE1()");
 this.obj.onmousedown = new Function("return false;");
 this.obj.style.cursor = "pointer";
 this.obj.style.position = "absolute";
 this.img = document.createElement("img");
 this.img.style.position = "absolute";
 this.img.src = IMGSRC[N%nI].src;
 this.obj.appendChild(this.img);
 IMGBOX.appendChild(this.obj);

this.object = new Array();
 this.x      = x;
 this.y      = y;
 this.N      = N;
 this.W      = 0;
 this.H      = 0;
 this.L      = 0;
 this.T      = 0;

function CImg(Parent,y,x){
   this.Parent = Parent;

  this.obj = document.createElement("span");
   this.obj.style.position="absolute";
   this.obj.style.overflow="hidden";
   this.obj.style.cursor = "pointer";
   this.img = document.createElement("img");
   this.img.style.position = "absolute";
   this.img.src = IMGSRC[N%nI].src;
   this.obj.appendChild(this.img);
   this.Parent.obj.appendChild(this.obj);

  this.N   = Parent.N;
   this.x   = x;
   this.y   = y;
   this.W   = 0;
   this.H   = 0;
   this.L   = 0;
   this.T   = 0;
   this.dx  = 0;
   this.dy  = 0;
   this.px  = 0;
   this.py  = 0;
   this.dw  = 0;
   this.dh  = 0;
   this.pw  = 0;
   this.ph  = 0;
   this.ipx = 0;
   this.ipy = 0;
   this.idx = 0;
   this.idy = 0;

  this.GE2 = function (){
    with(this){
     px -= dx * dR;
     py -= dy * dR;
     pw += dw * dR;
     ph += dh * dR;
     ipx -= idx * dR;
     ipy -= idy * dR;

    with(obj.style){
      left   = Math.round(px);
      top    = Math.round(py);
      width  = Math.round(pw)+1;
      height = Math.round(ph)+1;
      if(dR==-1)if(pw<=W+1)obj.style.visibility="hidden";
     }

    with(img.style){
      left   = Math.round(ipx-oW);
      top    = Math.round(ipy-oH);
     }

    if(++xrun>=NX*NY*SP){
      xrun=0;
      run=false;
      if(dR==-1)Parent.obj.style.zIndex = 0;
      dR = -dR;
     }
    }
   }

  this.GE1 = function (N1,N2){
    with(this){
     if(dR==1){
      px  = L;
      py  = T;
      dx  = ((Parent.L + L) - (x * Parent.W)) / SP;
      dy  = ((Parent.T + T) - (y * Parent.H)) / SP;
      pw  = W;
      ph  = H;
      dw  = (Parent.W - W) / SP;
      dh  = (Parent.H - H) / SP;
      ipx = -L;
      ipy = -T;
      idx = ((x * Parent.W) - L) / SP;
      idy = ((y * Parent.H) - T) / SP;
     }
     obj.style.visibility="visible";
     if(img.height>document.body.offsetHeight)oH=(img.height-document.body.offsetHeight)/2; else oH = 0;
     if(img.width>document.body.offsetWidth/2)oW=(img.width-(document.body.offsetWidth/2))/2; else oW = 0;
     for(i=0;i<SP;i++) setTimeout("object["+N1+"].object["+N2+"].GE2()",16*i);
    }
   }

  this.DOOT = function (){
    with(this){
     W =  Parent.W  / NX;
     H =  Parent.H / NY;
     L =  x * W;
     T =  y * H;
    }
   }
 }

var  k = 0;
 for(var i=0;i<NY;i++)
   for(var j=0;j<NX;j++)
    this.object[k++] = new CImg(this,i,j);

this.GE1  = function (){
   with(this){
    if(!run){
     TXTBOX.innerHTML = "<div style='margin:2%'>"+TXTSRC[N%nI].innerHTML+"</div>";
     run = true;
     obj.style.zIndex = 1;
     for(var i=0;i<NX*NY;i++) setTimeout("object["+N+"].object["+i+"].GE1("+N+","+i+")",i*DELAY);
    }
   }
 }

this.DOOT = function (){
   with(this){
    if(img.width<iW)iW=img.width;
    if(img.height<iH)iH=img.height;
    with(obj.style){
     W = width  = iW  / NX;
     H = height = iH / NY;
     L = left   = x * W;
     T = top    = y * H;
    }
    with(img.style){
     width  = W;
     height = H;
    }
    for(var i in object) object[i].DOOT();
   }
 }
 }


 onload = function() {
 IMGSRC = document.getElementById("imgsrc").getElementsByTagName("img");
 TXTSRC = document.getElementById("txtsrc").getElementsByTagName("div");
 IMGBOX = document.getElementById("imgbox");
 TXTBOX = document.getElementById("txtbox");
 CENTER = document.getElementById("center");
 iH = document.body.offsetHeight;
 iW = document.body.offsetWidth/2;
 nI = IMGSRC.length;
 var k = 0;
 for(var i=0;i<NY;i++){
   for(var j=0;j<NX;j++){
    object[k] = new CObj(k,i,j);
    object[k++].DOOT();
   }
 }
 IMGBOX.style.width  = iW;
 IMGBOX.style.height = iH;
 TXTBOX.style.width  = iW;
 TXTBOX.style.height = iH;
 TXTBOX.style.left   = iW;
 TXTBOX.style.visibility="visible";
 CENTER.style.left   = -iW;
 CENTER.style.top    = -iH/2;
 }
 //-->
 </script>
 </head>

<body>
 <div style="position:absolute;left:50%;top:50%;"><div id="center" style="position:absolute;">

<div id="imgbox" style="position:absolute;left:0;top:0;overflow:hidden;"></div>
 <div id="txtbox" style="position:absolute;visibility:hidden;overflow:hidden;background:#333;color:#FFF;font-family:verdana;font-size:0.8em;">
   <div style="margin:2%">
   <h2>IMGBOX</h2>Click the thumbnails on the left for a larger image. The description connected to the clicked image is displayed here.<br>
   <br>Note: for performance reasons, images are not resized and must be all of the same size.
   </div>
 </div>


 </div></div>

<div id="imgsrc" style="visibility:hidden">
 <img src="<a href=\"http://www.webjx.com/upfiles/20050411/BS9097.jpg\">http://www.webjx.com/upfiles/20050411/BS9097.jpg</a>">
 <img src="<a href=\"http://www.webjx.com/upfiles/20050411/BS9092.jpg\">http://www.webjx.com/upfiles/20050411/BS9092.jpg</a>">
 <img src="<a href=\"http://www.webjx.com/upfiles/20050411/BS9084.jpg\">http://www.webjx.com/upfiles/20050411/BS9084.jpg</a>">
 <img src="<a href=\"http://www.webjx.com/upfiles/20050411/BS9064.jpg\">http://www.webjx.com/upfiles/20050411/BS9064.jpg</a>">
 <img src="<a href=\"http://www.webjx.com/upfiles/20050411/BS9050.jpg\">http://www.webjx.com/upfiles/20050411/BS9050.jpg</a>">
 <img src="<a href=\"http://www.webjx.com/upfiles/20050411/BS9070.jpg\">http://www.webjx.com/upfiles/20050411/BS9070.jpg</a>">
 <img src="<a href=\"http://www.webjx.com/upfiles/20050411/BS9079.jpg\">http://www.webjx.com/upfiles/20050411/BS9079.jpg</a>">
 <img src="<a href=\"http://www.webjx.com/upfiles/20050411/BS9068.jpg\">http://www.webjx.com/upfiles/20050411/BS9068.jpg</a>">
 <img src="<a href=\"http://www.webjx.com/upfiles/20050411/BS9039.jpg\">http://www.webjx.com/upfiles/20050411/BS9039.jpg</a>">
 </div>

<div id="txtsrc" style="visibility:hidden">
 <div>
   <h2>the river</h2><br>Awaken from my nap by the river
 </div>
 <div>
   <h2>transparency</h2><br>Its transparency was hypnotizing.
 </div>
 <div>
   <h2>cold</h2><br>Currents of cold water played with light.
 </div>
 <div>
   <h2>sank in</h2><br>I threw a few nuts into the river. They floated for a while, then sank in.
 </div>
 <div>
   <h2>masked</h2><br>A wide stepping stone masked the water's depth.
 </div>
 <div>
   <h2>a glimpse</h2><br>Later on, I had a glimpse of the river's bed.
 </div>
 <div>
   <h2>forgotten</h2><br>The wheelchair made a noise. Again, I had forgotten about my legs.
 </div>
 <div>
   <h2>floated</h2><br>Still, I floated in oblivion of things too real.
 </div>
 <div>
   <h2>for me</h2><br>I stared fixedly at the water's open arms. The stream was singing for me.
 </div>
 </div>

<!-- crossbrowser images_loading_bar - Gerard Ferrandez - <a href=\"http://www.dhteumeuleu.com/\">www.dhteumeuleu.com</a> - Feb 2005 -->
 <span id=LB0 style="position:absolute;left:50%;top:50%;"><span style="position:absolute;font-family:arial;font-size:10px;color:#FFFFFF;left:-50;top:-18">Loading...</span>
 <span style="position:absolute;left:-50;top:-5;font-size:1px;width:100;height:10px;background:#333"><span id=LB1 style="position:absolute;left:0;top:0;font-size:1px;width:0;height:10px;background:#FFFFFF"></span></span></span>
 <script>m00=document.getElementById("imgsrc").getElementsByTagName("img");m01=m00.length;function images_loading_bar(){m02=0;for(i=0;i<m01;i++)m02+=(m00[i].complete)?1:0;document.getElementById("LB1").style.width=Math.round(m02/m01*100);if(m02==m01)setTimeout("document.getElementById('LB0').style.display='none'",128); else setTimeout("images_loading_bar()", 64);};images_loading_bar();</script>
 <!-- end of images_loading_bar code -->

</body>
 </html>
 

AddThis Social Bookmark Button

相关文档(Relevant Entries)
CSS缩写技巧
如何敏捷你的用户界面开发
Powering Javascript UI with CSS
预览待上传的本地图片
DIV+CSS网页布局常用的方法与技巧
采用DIV+CSS布局的好处
用CSS进行网页样式设计攻略全集
CSS做带三角形的效果
WoW Powerleveling
Posted on May 13, 2007 10:58 AM | | | Comments (0) | | TrackBacks (0)

引用地址(TRACKBACKS)
 
TrackBack URL for this entry:
http://www.wujianrong.com/mt-tb.cgi/5344

发布评论(ADD YOUR COMMENTS)
 
感谢您参与评论;发表您的意见时请保持文章的相关性;不相关的或是单纯宣传的内容可能会被删掉。您的E-mail只是用来确认您发表的文章,不会出现在网页上。
Please keep your comments relevant to this blog entry. Email addresses are never displayed, but they are required to confirm your comments.

称呼(Name):      记住我的个人信息(Remember)
邮箱(Email):
网址(URL):
评论(Add your comments):

相关内容
广告计划