<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> #div1{ width:430px; height:430px; overflow: hidden; position: relative; cursor: move; } #div1 div{ width:150px; height: 150px; background-color: rgba(121,11,22,0.2); position:absolute; top:0; left: 0; display: none; } #div2{ width:430px; height:430px; overflow: hidden; position: absolute; top:8px; left: 500px; display: none; } #div2 img{ position: absolute; top: 0; left: 0; } </style> </head> <body> <div id="div1"> <img src="https://img.alicdn.com/imgextra/i2/724195866/TB2E8K1cl0kpuFjy1zdXXXuUVXa_!!724195866.jpg_430x430q90.jpg"/> <div id="moveDiv"></div> </div> <div id="div2"> <img src="https://img.alicdn.com/imgextra/i1/724195866/TB2DMu6cgFkpuFjSspnXXb4qFXa_!!724195866.jpg" id="bigImg"/> </div> </body> <script type="text/javascript"> var oDiv1 = document.getElementById(‘div1‘); var oDiv2 = document.getElementById(‘div2‘); var moveDiv = document.getElementById(‘moveDiv‘); var bigImg = document.getElementById(‘bigImg‘); oDiv1.onmouseenter = function(){ moveDiv.style.display = ‘block‘; oDiv2.style.display = ‘block‘; } oDiv1.onmouseleave = function(){ moveDiv.style.display = ‘none‘; oDiv2.style.display = ‘none‘; } oDiv1.onmousemove = function(ev){ var event = ev||window.event; var T = event.clientY-oDiv1.offsetTop-moveDiv.offsetHeight/2; var L = event.clientX-oDiv1.offsetLeft-moveDiv.offsetWidth/2; //移动方块的位置范围限制 if(T<0){ T = 0; } if(T>oDiv1.offsetHeight-moveDiv.offsetHeight){ T = oDiv1.offsetHeight-moveDiv.offsetHeight; } if(L<0){ L = 0; } if(L>oDiv1.offsetWidth-moveDiv.offsetWidth){ L = oDiv1.offsetWidth-moveDiv.offsetWidth; } moveDiv.style.top = T+‘px‘; moveDiv.style.left = L+‘px‘; //缩放比例 var scaleX = L/(oDiv1.offsetWidth-moveDiv.offsetWidth); var scaleY = T/(oDiv1.offsetHeight-moveDiv.offsetHeight); console.log(scaleX); console.log(scaleY); bigImg.style.top = -scaleY*(bigImg.offsetHeight-oDiv2.offsetHeight)+‘px‘; bigImg.style.left = -scaleX*(bigImg.offsetWidth-oDiv2.offsetWidth)+‘px‘; } </script> </html>