设为首页 | 加入收藏 | 
JS实现放大镜功能,鼠标经过一个图片,放大显示
作者:佚名 时间:06月26日 来源:互联网 浏览次数:【字号: 】 

泡泡ASP相关代码:
<script language="JavaScript">
<!--
//放大镜功能,鼠标经过一个图片,放大显示
var smallX = 200; //缩略图宽度
var bigX = 600; //预览窗大小,可以任意设置
var bigY = 450;
var srcX = -1; //原图大小,可以任意设置. 如都为-1将使用图片原始大小
var srcY = -1;
var border = 5; //边框
var smallY,viewX,viewY,bl,isIE,vX,vY;
window.onload=function (){
 head.innerHTML="图片已载入";
 isIE=window.event?1:0;
 if (srcX==-1 && srcY==-1){srcX=bigpic.width;srcY=bigpic.height;}
 else{bigpic.width=srcX;bigpic.height=srcY;}
 smallY=srcY*smallX/srcX;
 viewX=bigX/srcX*smallX; //预览范围
 viewY=bigY/srcY*smallY;
 bl=srcX/smallX; //缩小比例
 smallpic.width=smallX;
 smallpic.height=smallY;
 document.getElementById("smallbox").style.borderWidth=border;
 document.getElementById("smallbox").style.width=smallpic.offsetWidth+border*2*isIE;
 document.getElementById("smallbox").style.height=smallpic.offsetHeight+border*2*isIE;
 document.getElementById("bigbox").style.borderWidth=border;
 document.getElementById("bigbox").style.width=bigX+border*2*isIE;
 document.getElementById("bigbox").style.height=bigY+border*2*isIE;
 document.getElementById("view").style.left=document.getElementById("smallbox").offsetLeft + border;
 document.getElementById("view").style.top=document.getElementById("smallbox").offsetTop + border;
 document.getElementById("view").style.width=viewX- !isIE*3+1;
 document.getElementById("view").style.height=viewY- !isIE*3+1;
}
function move(e){
 var e = window.event?window.event:e;
 if (!isIE){vX=e.pageX-border-document.getElementById("smallbox").offsetLeft;
 vY=e.pageY-border-document.getElementById("smallbox").offsetTop}
 else{vX=e.offsetX;vY=e.offsetY}
 vX+=-viewX/2;
 vY+=-viewY/2;
 if (vX < 0) vX = 0;
 if (vY < 0) vY = 0;
 if (vX > smallX - viewX) vX = smallX - viewX;
 if (vY > smallY - viewY) vY = smallY - viewY;
 document.getElementById("bigpico").style.marginLeft = - vX * bl;
 document.getElementById("bigpico").style.marginTop = - vY * bl;
 document.getElementById("view").style.left = vX + document.getElementById("smallbox").offsetLeft + border;
 document.getElementById("view").style.top = vY + document.getElementById("smallbox").offsetTop + border;
}
//-->
</script>
<style type="text/css">
*{padding:0;margin:0}
body{background:black}
img{display:block;}
#smallbox{border:1px #c33 solid;float:left;width:0;height:0;overflow:hidden;font-size:0px}
#bigbox{border:1px #c33 solid;width:0px;height:0px;float:left;overflow:hidden;font-size:0px}
#view{border:1px #ddd solid;width:0px;height:0px;position:absolute;font-size:0px}
#head{text-align:center;line-height:40px;font:bold 16px/40px;color:pink}
</style>
<div id="head">图片loading...</div>
<div id="smallbox"><img id="smallpic" src="/Upload/2008626115443866.jpg" border="0" onmousemove="move(event);"></div>
<div id="bigbox"><div id="bigpico"><img id="bigpic" src="/Upload/2008626115443866.jpg" border="0"></div></div>
<div id="view" onmousemove="if (!isIE) move(event)"></div>

 * 以上任何内容或信息侵犯了你的利益,请及时联系!
泡泡搜索
最新文章
热点文章
精彩推荐
 - TOP