我希望计算鼠标和给定元素边缘之间的距离。因此,当鼠标触摸元素边缘时,该值应为0像素。
https://codepen.io/nishaljohn/pen/BVmGbz
var mX, mY, distance,
$distance = $('#distance_text p'),
$element = $('.div1');
function calculateDistance(elem, mouseX, mouseY) {
return Math.floor(Math.sqrt(Math.pow(mouseX - (elem.offset().left+(elem.width()/2)), 2) + Math.pow(mouseY - (elem.offset().top+(elem.height()/2)), 2)));
}
$(document).mousemove(function(e) {
mX = e.pageX;
mY = e.pageY;
distance = calculateDistance($element, mX, mY);
$distance.text(distance);
});
这考虑了元素的中心,并且只有在到达绝对中心时才读取0px。
一个jQuery插件也可以。