首页 > 代码库 > Javascript:实操---放大镜效果
Javascript:实操---放大镜效果
CSS部分
<style type="text/css">
/* body{
padding: 10px;
} */
#minWrap{
width: 350px;
height: 350px;
border: 1px solid #ccc;
position: relative;
}
#slider{
height: 175px;
width: 175px;
background-color: yellow;
opacity: 0.3;
position: absolute;
left: 0;
top: 0;
display: none;
}
#maxWrap{
display: none;
position: absolute;
left: 370px;
width: 400px;
height: 400px;
border: 1px solid #ccc;
overflow: hidden;
top: 8px;
}
#maxWrap img{
position: absolute;
}
</style>
JS部分
<script type="text/javascript">
window.onload=function (){
var minWrap=document.getElementById("minWrap");
var oSlider=document.getElementById("slider");
var maxWrap=document.getElementById("maxWrap");
var maxImg=maxWrap.children[0];
minWrap.onmousemove=function (ev){
oSlider.style.display="block";
maxWrap.style.display="block";
var oEvent=ev||window.event;
var x=oEvent.clientX-oSlider.offsetWidth/2-minWrap.offsetLeft;
var y=oEvent.clientY-oSlider.offsetHeight/2-minWrap.offsetTop;
if (x>=minWrap.clientWidth-oSlider.offsetWidth){
x=minWrap.clientWidth-oSlider.offsetWidth;
}
else if (x<=0){
x=0;
}
if (y>=minWrap.clientHeight-oSlider.offsetHeight){
y=minWrap.clientHeight-oSlider.offsetHeight;
}
else if (y<=0){
y=0;
}
oSlider.style.left=x+"px";
oSlider.style.top=y+"px";
var scale=maxWrap.clientWidth/oSlider.offsetWidth;
maxImg.style.left=-scale*x+"px";
maxImg.style.top=-scale*y+"px";
}
minWrap.onmouseout=function (){
oSlider.style.display="none";
maxWrap.style.display="none";
}
}
</script>
HTML部分
<div id="minWrap">
<img src="http://www.mamicode.com/min.jpg" >
<div id="slider"></div>
</div>
<div id="maxWrap">
<img src="http://www.mamicode.com/max.jpg" >
</div>