放大图片的js

    <html>  
    <head>  
    <title>emu</title>  
    </head>  
    <body>  
    <BR>  
    原图:<BR>  
    <img src="no_picture.jpg"   
      
    onmousemove='zoom()' onmouseout='hideBigImg()'  id="srcImg" style="margin-left:100px;">  
    <BR>  
    局部放大图:<BR>  
	<div id="debug"></div>
	<!--1-->
    <div style='overflow:hidden;display:none;z-index:1;left:400;top:30px; position:absolute;' id='bigImgDiv'><img id="zoomImg"></div>  
    

	<!--2-->	
    <script language="javascript" type="text/javascript">  
    <!--  
	
	
	 	var zoomImg;
    var srcImg;
    var zoomRate = 3; 
   	window.attachEvent('onload',initZoom)
   function initZoom()
   {
   	zoomImg=document.getElementById('zoomImg');
	
	srcImg=document.getElementById('srcImg');
    zoomImg.src = srcImg.src;  

	zoomImg.width = srcImg.width*zoomRate;  
    zoomImg.height = srcImg.height*zoomRate;  
    zoomImg.parentNode.style.width = srcImg.width;  
    zoomImg.parentNode.style.height = srcImg.height;  
   }
	
	

    function zoom(){  
	document.getElementById('bigImgDiv').style.display='block';
    var elm = event.srcElement;  
    h = elm.offsetHeight/zoomRate/2;  
    w = elm.offsetWidth/zoomRate/2;  
    var x = event.x-elm.offsetLeft;  
    xx=x<(elm.offsetWidth-w)?x<w?w:x:elm.offsetWidth-w;  
    zoomImg.style.marginLeft=(w-xx)*zoomRate;  
    var y = event.y-elm.offsetTop;  
    yy=y<(elm.offsetHeight-h)?y<h?h:y:elm.offsetHeight-h;  
    zoomImg.style.marginTop=(h-yy)*zoomRate;  
	document.getElementById('debug').innerHTML=event.x+":"+event.y+"-"+elm.offsetLeft+"-"+elm.offsetTop;
    }  
	
	function hideBigImg(){
		document.getElementById('bigImgDiv').style.display='none';
	}

    //-->  
    </script>  
    </body>  
    </html>  



这是在FF里是可以的但是 在IE中 会因为elm.offsetLeft elm.offsetTop 解释的不同而造成非直接放在body中的图像位置获取错误

你可能感兴趣的:(IE)