<style>
.box{
margin: 50px auto;
zoom: 1;
}
.box:after{
content: "";
display: block;
clear: both;
}
#small{
width: 720px;
height: 450px;
padding: 2px;
border: 1px #bbb solid;
position: relative;
float: left;
}
#fangDa{
width: 200px;
height: 200px;
background-color: yellow;
opacity: 0.3;
top: 0;
left: 0;
position: absolute;
cursor: all-scroll;
display: none;
}
#big{
width: 600px;
height: 600px;
overflow: hidden;
float: left;
margin-left: 20px;
display: none;
}
</style>
<div class="box">
<div id="small">
<img src="images/small.jpg" />
<div id="fangDa"></div>
</div>
<div id="big">
<img src="images/big.jpg" />
</div>
</div>
<script>
function my$(id){
return document.getElementById(id);
}
var smallImg = my$("small").children[0];
var bigImg = my$("big").children[0];
my$("small").onmouseover = function(){
my$("fangDa").style.display = "block";
my$("big").style.display = "block";
}
my$("small").onmouseout = function(){
my$("fangDa").style.display = "none";
my$("big").style.display = "none";
}
my$("small").onmousemove = function(e){
var x = e.clientX - my$("fangDa").offsetWidth / 2;
var y = e.clientY - my$("fangDa").offsetHeight / 2 - 50;
x = x <= 0 ? 0 : x;
y = y <= 0 ? 0 : y;
x = x >= my$("small").offsetWidth - my$("fangDa").offsetWidth ? my$("small").offsetWidth - my$("fangDa").offsetWidth : x;
y = y >= my$("small").offsetHeight - my$("fangDa").offsetHeight ? my$("small").offsetHeight - my$("fangDa").offsetHeight : y;
my$("fangDa").style.left = x + "px";
my$("fangDa").style.top = y + "px";
var maxX = bigImg.offsetWidth - my$("big").offsetWidth;
var bigImgMoveX = x * maxX / (my$("small").offsetWidth - my$("fangDa").offsetWidth);
var bigImgMoveY = y * maxX / (my$("small").offsetWidth - my$("fangDa").offsetWidth);
bigImg.style.marginLeft = -bigImgMoveX + "px";
bigImg.style.marginTop = -bigImgMoveY + "px";
}
</script>