|
@@ -0,0 +1,112 @@
|
|
|
|
+<!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>
|