Monday 25 December 2017

dom - How can I get an object's absolute position on the page in Javascript?





I want to get an object's absolute x,y position on the page in
Javascript. How can I do this?



I tried
obj.offsetTop and obj.offsetLeft, but
those only give the position relative to the parent element. I guess I could loop
through and add the parent's offset, and its parent's offset, and so on until I get to
the object with no parent, but it seems like there should be a better way. Googling
didn't turn up much, and even SO site search isn't finding
anything.



Also, I can't use
jQuery.



Answer




var cumulativeOffset =
function(element) {
var top = 0, left = 0;
do {
top +=
element.offsetTop || 0;
left += element.offsetLeft || 0;
element =
element.offsetParent;
} while(element);

return
{
top: top,
left: left

};
};


(Method
shamelessly stolen from PrototypeJS; code style, variable names and return value changed
to protect the innocent)


No comments:

Post a Comment

php - file_get_contents shows unexpected output while reading a file

I want to output an inline jpg image as a base64 encoded string, however when I do this : $contents = file_get_contents($filename); print &q...