JavaScript放大镜的特效


<html>
<head>
<title>放大镜效果-建站学www.jzxue.com</title>
<base href="http://www.jzxue.com/System/uploads/userup/1103/">
<script type="text/javascript">            /*
*特别注意:
*放大的倍数=原图的大小/小图片显示的大小
*自己查看原图片的大小,我这是 400*400 px
*/            //图片对象
var imgObj;
//放大镜div对象
var zoomDivObj;
//显示小图片的div
var mainDivObj;
//放大后显示图片的div
var showDivObj;
//放大镜的大小
var zoomSize=50;
//放大镜的倍数(不能随便填)
var zoomMultiple=2;
//图片的路径
var imgPath="130936345148.gif";
//小图片显示的大小
var imgW=200;
var imgH=200;
//显示的位置
var left=100;
var top=10;
//放大镜div的透明度(0~100)
var opacity=50;
//放大镜div的颜色
var rgb="223,223,223";            function load()
{
if(zoomDivObj==null)
createZoomDivObj();
if(mainDivObj==null)
createMainDivObj();
if(showDivObj==null)
createShowDivObj();
if(imgObj==null)
createImgObj();                zoomDivObj.style.width=zoomSize+"px";
zoomDivObj.style.height=zoomSize+"px";                showDivObj.style.width=zoomSize*zoomMultiple+"px";
showDivObj.style.height=zoomSize*zoomMultiple+"px";                showDivObj.style.backgroundImage="url("+imgPath+")";                imgObj.src=imgPath;
imgObj.style.width=imgW+"px";
imgObj.style.height=imgH+"px";                mainDivObj.style.width=imgW+"px";
mainDivObj.style.height=imgH+"px";
mainDivObj.style.left=left+"px";
mainDivObj.style.top=top+"px";                showDivObj.style.left=left+imgW+50+"px";
showDivObj.style.top=top+"px";                zoomDivObj.style.backgroundColor="rgb("+rgb+")";
//两个都要写,为了IE 和 火狐 的通用
zoomDivObj.style.filter="alpha(opacity="+opacity+")";
zoomDivObj.style.opacity=opacity/100;
}            function showZoomDiv()
{
if(zoomDivObj==null)
createZoomDivObj();                zoomDivObj.style.visibility="visible";
}
function moveZoomDiv(e)
{
if(zoomDivObj==null)
createZoomDivObj();                var w=zoomDivObj.style.width.replace("px","")-0;
var h=zoomDivObj.style.height.replace("px","")-0;
if(mainDivObj==null)
createMainDivObj();                var mouseX=e.clientX-(mainDivObj.style.left.replace("px","")-0);
var mouseY=e.clientY-(mainDivObj.style.top.replace("px","")-0);
window.status=mouseX+"    "+mouseY;                zoomDivObj.style.left=mouseX-(w/2)+"px";
zoomDivObj.style.top=mouseY-(h/2)+"px";                if(showDivObj==null)
createShowDivObj();
showDivObj.style.backgroundPosition=(-mouseX+w/2)*zoomMultiple+"px "+(-mouseY+h/2)*zoomMultiple+"px";
}            function hiddenZoomDiv()
{
if(zoomDivObj==null)
createZoomDivObj();                //zoomDivObj.style.visibility="hidden";
}            function createZoomDivObj()
{
zoomDivObj=document.getElementById("zoom_div_id");
}            function createMainDivObj()
{
mainDivObj=document.getElementById("main_div_id");
}            function createShowDivObj()
{
showDivObj=document.getElementById("show_div_id");
}            function createImgObj()
{
imgObj=document.getElementById("img_id");
}
</script>
</head>
<body onmousemove="moveZoomDiv(event)" onload="load()">
<div id="main_div_id" style="position:absolute;overflow:hidden;background-color:cyan;border:gray solid 1px;" onmouseover="showZoomDiv()" onmouseout="hiddenZoomDiv()" >
<img id="img_id">            <div id="zoom_div_id" style="position:absolute;left:0px;top:0px;overflow:hidden;visibility:hidden;"></div>
</div>        <div id="show_div_id" style="position:absolute;overflow:hidden;background-color:cyan;background-repeat:no-repeat;border:gray solid 1px;" ></div>
</body>
</html>
« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3