|
@@ -0,0 +1,44 @@
|
|
|
|
+var small = document.getElementById("small");
|
|
|
|
+var drag = document.getElementById("drag");
|
|
|
|
+var big = document.getElementById("big");
|
|
|
|
+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;
|
|
|
|
+ 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 left1 = small.offsetWidth - drag.offsetWidth;
|
|
|
|
+ var top1 = small.offsetHeight - drag.offsetHeight;
|
|
|
|
+ if(drag.offsetLeft > left1) {
|
|
|
|
+ drag.style.left = left1 + 'px';
|
|
|
|
+ }
|
|
|
|
+ if(drag.offsetTop > top1) {
|
|
|
|
+ drag.style.top = top1 + 'px';
|
|
|
|
+ }
|
|
|
|
+ var x = drag.offsetLeft / left1;
|
|
|
|
+ var y = drag.offsetTop / top1;
|
|
|
|
+ // 大图可移动距离
|
|
|
|
+ var bigLeft = bigImg.offsetWidth - big.offsetWidth;
|
|
|
|
+ var bigTop = bigImg.offsetHeight - big.offsetHeight;
|
|
|
|
+
|
|
|
|
+ bigImg.style.left = -bigLeft * x + 'px';
|
|
|
|
+ bigImg.style.top = -bigTop * y + 'px';
|
|
|
|
+}
|