什么是jQuery等同于Prototype的locateOffset

时间:2014-08-25 17:05:29

标签: jquery prototypejs

(据我所知)jQuery没有提供本机解决方案来查找元素对其定位父元素的偏移量。如何让jQuery为我提供元素的位置偏移

的坐标

1 个答案:

答案 0 :(得分:0)

使用jQuery的offsetParent()方法,我们可以获取当前元素所在的元素。然后我们可以比较两个偏移并提取坐标以获得我们正在寻找的信息。下面的方法将返回一个对象" top"和"左"属性。

// jQuery equivalent to Prototype's positionedOffset
(function($) {
    $.fn.positionedOffset = function() {
        // get viewport offset for our main element
        var coords = $(this).offset();

        // get parent and parent viewport offset 
        var parent = $(this).offsetParent();
        var parentCoords = $(parent).offset();

        // do some math to calculate relative offset
        var diff_left = coords.left - parentCoords.left;
        var diff_top = coords.top - parentCoords.top;

        // return values
        var offsetCoords = {
            left: diff_left,
            top: diff_top
        }

        return offsetCoords;
    };
})(jQuery);