| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 | <!DOCTYPE html><html lang="en"><head>  <meta charset="UTF-8">  <meta http-equiv="X-UA-Compatible" content="IE=edge">  <meta name="viewport" content="width=device-width, initial-scale=1.0">  <title>Document</title>  <style>    * {      margin: 0;      padding: 0;    }    #container {      position: relative;    }    #smallBox {      width: 400px;      height: 400px;    }    #bigBox {      width: 400px;      height: 400px;      overflow: hidden;      position: absolute;      left: 400px;      top: 0;      display: none;    }    #drag {      width: 200px;      height: 200px;      background: rgba(0, 0, 0, 0.4);      position: absolute;      top: 0;      left: 0;      display: none;    }    #bigImg {      position: absolute    }  </style></head><body>  <div id="container">    <div id="smallBox">      <img src="images/1.jpg" alt="">      <div id="drag"></div>    </div>    <div id="bigBox">      <img src="images/2.jpg" alt="" id="bigImg">    </div>  </div>  <script>    var drag = document.getElementById('drag')    var small = document.getElementById('smallBox')    var big = document.getElementById('bigBox')    var bigImg = document.getElementById('bigImg')    //鼠标划入事件    small.onmouseover = function () {      drag.style.display = 'block'      big.style.display = 'block'    }    //鼠标划出事件    small.onmouseout = function () {      drag.style.display = 'none'      big.style.display = 'none'    }    //鼠标滑动的事件    small.onmousemove = function (e) {      var smallLeft = e.clientX - drag.offsetWidth / 2      var smallTop = e.clientY - drag.offsetHeight / 2      console.log(smallLeft)      drag.style.left = smallLeft + 'px'      drag.style.top = smallTop + 'px'      if (drag.offsetLeft <= 0) {        drag.style.left = 0      }      if (drag.offsetTop <= 0) {        drag.style.top = 0      }      //最大距离      var xLeft = small.offsetWidth - drag.offsetWidth      var xTop = small.offsetHeight - drag.offsetHeight      if (drag.offsetLeft > xLeft) {        drag.style.left = xLeft + 'px'      }      if (drag.offsetTop > xTop) {        drag.style.top = xTop + 'px'      }      //比例      var m = drag.offsetLeft / xLeft      var n = drag.offsetTop / xTop      //右侧可以移动的最大距离      var zLeft = bigImg.offsetWidth - big.offsetWidth      var zTop = bigImg.offsetHeight - big.offsetHeight      bigImg.style.left = -zLeft * m + 'px'      bigImg.style.top = -zTop * n + 'px'    }  </script></body></html>
 |