计算鼠标与元素之间的距离

Avatar of Chris Coyier
Chris Coyier
(function() {
    
    var mX, mY, distance,
        $distance = $('#distance span'),
        $element  = $('#element');

    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);         
    });

})();

此代码将计算鼠标光标与元素中心之间的距离。这对于在鼠标距离元素一定范围内触发函数很有用。或者,您可以根据鼠标光标的接近程度来设置属性的值,例如元素的宽度、高度或不透明度。