<style>
body{
width: 960px;
margin: 40px auto;
}
#small{
width: 350px;
height: 450px;
border:1px solid green;
position: absolute;
overflow: hidden;
}
#small img{
width: 100%;
height: 100%;
}
div{
float:left;
}
#move{
width: 100px;
height: 100px;
position: absolute;
top:0px;
left:0px;
background-color: black;
display: none;
opacity:0.4;
}
#look_girl{
position: absolute;
left:0px;
top:0px;
}
#big{
border:1px solid red;
width: 340px;
height:340px;
overflow: hidden;
display: none;
position: absolute;
}
</style>
<body>
<div id="small">
<img src="./images/3.jpg" />
<p id="move"></p>
</div>
<div id="big">
<img src="./images/3.jpg" id="look_girl" />
</div>
</body>
<script>
var smallObj = document.getElementById(‘small‘);
var moveObj = document.getElementById(‘move‘);
var bigObj = document.getElementById(‘big‘);
var girlObj = document.getElementById(‘look_girl‘);
smallObj.onmousemove = function(eve){
var e = eve || window.event;
var mouseX = e.clientX;
var mouseY = e.clientY;
var moveLeft = mouseX-smallObj.offsetLeft-moveObj.offsetWidth/2;
var moveTop = mouseY - smallObj.offsetTop-moveObj.offsetHeight/2;
if(moveLeft<0) moveLeft=0;
var endLeft = smallObj.offsetWidth-moveObj.offsetWidth
if(moveLeft>endLeft) moveLeft = endLeft;
if(moveTop<0) moveTop=0;
var endTop = smallObj.offsetHeight-moveObj.offsetHeight;
if(moveTop>endTop) moveTop=endTop;
moveObj.style.left = moveLeft+‘px‘;
moveObj.style.top = moveTop+‘px‘;
moveObj.style.display = ‘block‘;
bigObj.style.display = ‘block‘;
bigObj.style.left = smallObj.offsetLeft+smallObj.offsetWidth+‘px‘;
bigObj.style.top = smallObj.offsetTop+‘px‘;
var girlLeft = moveLeft/(smallObj.offsetWidth-moveObj.offsetWidth)*(bigObj.offsetWidth-girlObj.offsetWidth);
var girlTop = moveTop/(smallObj.offsetHeight-moveObj.offsetHeight)*(bigObj.offsetHeight-girlObj.offsetHeight);
console.log(girlLeft,girlTop);
girlObj.style.top = girlTop+‘px‘;
girlObj.style.left = girlLeft+‘px‘;
}
smallObj.onmouseleave = function(){
moveObj.style.display = ‘none‘;
bigObj.style.display = ‘none‘;
}
</script>
思路:
原文:https://www.cnblogs.com/wshj120828/p/11487681.html