实用的JS图片放大镜特效,鼠标放上后,根据鼠标悬停的区域放大图片,可用作产品图片放大,本图片放大的原理是调用大图片,在网页上以小图显示,鼠标悬停放大后的图像实际上是显示的原图片。因此来说,网页加载可能有点慢,测试时候请稍等片刻。
【源代码展示】
<!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>Js图片放大代码</title> <style type="text/css"> #div1 { width:304px; height:222px; position:relative; margin:30px auto 0px;} #div1 img{width:304px; height:222px;} #div1 span { width:100px; height:100px; background:red; left:0px;top:0px; position:absolute; display:none; filter:alpha(opacity:20); opacity:0.2;} .show { width:100%; height:100%; background:red; position:absolute; z-index:10px; filter:alpha(opacity:10); opacity:0.1; left:0px; top:0px; } #div2 {width:304px; height:222px; position:relative; display:none; overflow:hidden; margin:0px auto 0px;} #img1 { position:absolute;} </style> <script type="text/javascript"> window.onload=function () { var oDiv=document.getElementById('div1'); var oShow=oDiv.getElementsByTagName('div')[0]; var oSpan=oDiv.getElementsByTagName('span')[0]; var oImg=document.getElementById('img1'); oShow.onmouseover=function() { oSpan.style.display='block'; oImg.parentNode.style.display='block'; }; oShow.onmouseout=function() { oSpan.style.display='none'; oImg.parentNode.style.display='none'; }; oShow.onmousemove=function(ev) { var oEvent=ev||event; var x=oEvent.clientX-oDiv.offsetLeft-oSpan.offsetWidth/2; var y=oEvent.clientY-oDiv.offsetTop-oSpan.offsetHeight/2; if(x<0) { x=0; } else if(x>oShow.offsetWidth-oSpan.offsetWidth) { x=oShow.offsetWidth-oSpan.offsetWidth; } if(y<0) { y=0; } else if(y>oShow.offsetHeight-oSpan.offsetHeight) { y=oShow.offsetHeight-oSpan.offsetHeight } oSpan.style.left=x+'px'; oSpan.style.top=y+'px'; var percentX=x/(oShow.offsetWidth-oSpan.offsetWidth); var percentY=y/(oShow.offsetHeight-oSpan.offsetHeight); var oImgparent=oImg.parentNode; oImg.style.left=-percentX*(oImg.offsetWidth-oImgparent.offsetWidth)+'px'; oImg.style.top=-percentY*(oImg.offsetHeight-oImgparent.offsetHeight)+'px'; }; }; </script> </head> <body> <div id="div1"> <img src="http://www.codesc.net/jscode/demoimg/201102/11_2_2.jpg" /> <span></span> <div class="show"></div> </div> <div id="div2"> <img id="img1" src="http://www.codesc.net/jscode/demoimg/201102/11_2_2.jpg" /> </div> </body> </html>
-----------------------------------------------------------------------------------------------------------------------------感谢观看!期待您的下次光临!