当前位置: 代码迷 >> JavaScript >> 看下这样的JS如何实现点击放大
  详细解决方案

看下这样的JS如何实现点击放大

热度:79   发布时间:2012-03-12 12:45:33.0
看下这样的JS怎么实现点击放大
怎么实现双击图片的时候放大
JScript code
<script>
    window.onload=function(){
        var rt=new imgRound("imgContainer",150,100,300,80,230,0.01);
        setInterval(function(){rt.roundMove()},20)
    }
    function imgRound(id,w,h,x,y,r,dv,rh,ah){
        if (ah==undefined) ah=1;
        if (rh==undefined) rh=50;
        var dv=dv*ah; //旋转速度
        var pi=3.1415926575;
        var d=pi/2;
        var pd=Math.asin(w/2/r);
        var smove=true;
        var imgArr=new Array();
        var objectId=id;
        var o=document.getElementById(objectId);
        o.style.position="relative";
        var arrimg=o.getElementsByTagName("img");
        var pn=arrimg.length; //图片数量
        var ed=pi*2/pn;
        for (n=0;n<arrimg.length;n++){
            var lk=arrimg[n].getAttribute("link");
            if (lk!=null) arrimg[n].setAttribute("title",lk)
            arrimg[n].onclick=function(){
                if (this.getAttribute("link")!=null){
                    if (this.getAttribute("target")!="_blank") window.location=(this.getAttribute("link"))
                    else window.open(this.getAttribute("link"))
                }
            }
            arrimg[n].onmouseout=function(){smove=true;}
            arrimg[n].onmouseover=function(){smove=false;}
            arrimg[n].style.position="absolute";
            imgArr.push(arrimg[n]);
        }
        
        this.roundMove=function(){
            for (n=0;n<=pn-1;n++){
                var o=imgArr[n];
                var ta=Math.sin(d+ed*n),strFilter;
                if (ta<0) o.style.left=Math.cos(d+ed*n-pd)*r+x+"px";
                else o.style.left=Math.cos(d+ed*n+pd)*r+x+"px";
                o.style.top=ta*rh+rh+y+"px";
                var zoom=Math.abs(Math.sin((d+ed*n)/2+pi/4))*0.5+0.5;
                o.style.width=Math.abs(Math.cos(d+ed*n+pd)-Math.cos(d+ed*n-pd))*zoom*r+"px";
                o.style.height=zoom*h+"px";
                if (ta<0) {ta=(ta+1)*80+20;o.style.zIndex=0;}
                else {ta=100;o.style.zIndex=1}
                if (o.style.zIndex<=0) strFilter="FlipH(enabled:true)"
                else strFilter="FlipH(enabled:false)";
                strFilter=strFilter+" alpha(opacity="+ta+")";
                o.style.opacity=ta/100;
                o.style.filter=strFilter;
            }
            if (smove) d=d+dv;
        }
    }
</script>
<div id="imgContainer" style="width:600px;height:300px;border:1px solid red">
<img src="http://www.idccyw.com/blueidea/images/s1.jpg"/>
<img src="http://www.idccyw.com/blueidea/images/s2.jpg"/>
<img src="http://www.idccyw.com/blueidea/images/s3.jpg"/>
<img src="http://www.idccyw.com/blueidea/images/s4.jpg" />
<img src="http://www.idccyw.com/blueidea/images/s5.jpg"/>
<img src="http://www.idccyw.com/blueidea/images/s1.jpg"/>
<img src="http://www.idccyw.com/blueidea/images/s2.jpg"/>
<img src="http://www.idccyw.com/blueidea/images/s3.jpg"/>
</div>



------解决方案--------------------
用js控制图片的大小 可以啊!
document.getElementById("img").width
document.getElementById("img").height
------解决方案--------------------
HTML code
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>图片的放大和缩小</title>
<meta content="text/html; charset="GB2312" http-equiv="Content-Type" />
</head>

  <body>
  <div>
  <input type="button" value="打开" onclick="opened()"/> <input type="button" value="关闭" onclick="closeed()"/>  
  </div>
  <div id="main">
  <img src="12.jpg"/>
  </div>
  
  <script type="text/javascript">
  var n=2;
  var control=true;
  var stop;
    
  var div_main=document.getElementById("main");  
  var w=div_main.getElementsByTagName("img")[0].width;
  //alert(w);
  var h=div_main.getElementsByTagName("img")[0].height;   
    
  var x=div_main.getElementsByTagName("img")[0].left;
  //alert(x);
  var y=div_main.getElementsByTagName("img")[0].top;

  
  function opened(){
    
      if(control==true){
          if(n>=20){
            control=false;
             window.clearTimeout(stop);
          }else{
              w+=5;
              h+=5;
              x+=5;
              y+=5;
              div_main.getElementsByTagName("img")[0].width=w;
              div_main.getElementsByTagName("img")[0].height=h;
              div_main.getElementsByTagName("img")[0].left=x;
              div_main.getElementsByTagName("img")[0].top=y;
              stop=setTimeout('opened()',100);    
          }
          n++;
      }
  }
  
  function closeed(){
      if(control==false){
         if(n<=0){
            control=true;
            window.clearTimeout(stop);
          }else{
              w-=5;
              h-=5;
              x-=5;
              y-=5;
              div_main.getElementsByTagName("img")[0].width=w;
              div_main.getElementsByTagName("img")[0].height=h;
              div_main.getElementsByTagName("img")[0].left=x;
              div_main.getElementsByTagName("img")[0].top=y;
              stop=setTimeout('closeed()',100);
           }
           n--;
      }
}
  </script>
  </body>
</html> 
  相关解决方案