1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- 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';
- }
|