//获取需要的元素 var box = my$("box"); //获取小图的div var small = box.children[0]; //遮挡层 var mask = small.children[1]; //获取大图的div var big = box.children[1]; //获取大图 var bigImg = big.children[0];
// 确保鼠标在遮挡层中央 var x = e.clientX - 100 - mask.offsetWidth / 2 var y = e.clientY - 100 - mask.offsetHeight / 2 // 限制边距范围 // x 的最小值 x = x <= 0 ? 0 : x // y 的最小值 y = y <= 0 ? 0 : y // x 的最大值 x = x >= small.offsetWidth - mask.offsetWidth ? small.offsetWidth - mask.offsetWidth : x // y 的最大值 y = y >= small.offsetHeight - mask.offsetHeight ? small.offsetHeight - mask.offsetHeight : y
// 遮挡层移动 mask.style.left = x + 'px' mask.style.top = y + 'px'
// 大图最大移动距离 // X var bigX = bigImg.offsetWidth - big.offsetWidth // Y var bigY = bigImg.offsetHeight - big.offsetHeight
// 大图移动距离 // X var bigMoveX = x * bigX / (small.offsetWidth - mask.offsetWidth) // Y var bigMoveY = y * bigY / (small.offsetHeight - mask.offsetHeight)