How to get an element's top position relative to the browser's viewport?

后端 未结 12 1153
你的背包
你的背包 2020-11-29 17:17

I want to get the position of an element relative to the browser\'s viewport (the viewport in which the page is displayed, not the whole page). How can this be done in JavaS

12条回答
  •  萌比男神i
    2020-11-29 17:54

    Sometimes getBoundingClientRect() object's property value shows 0 for IE. In that case you have to set display = 'block' for the element. You can use below code for all browser to get offset.

    Extend jQuery functionality :

    (function($) {
        jQuery.fn.weOffset = function () {
            var de = document.documentElement;
            $(this).css("display", "block");
            var box = $(this).get(0).getBoundingClientRect();
            var top = box.top + window.pageYOffset - de.clientTop;
            var left = box.left + window.pageXOffset - de.clientLeft;
            return { top: top, left: left };
        };
    }(jQuery));
    

    Use :

    var elementOffset = $("#" + elementId).weOffset();
    

提交回复
热议问题