By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
459,700 Members | 1,434 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 459,700 IT Pros & Developers. It's quick & easy.

position of an element relative to the page

P: n/a
i'm illiterate when it comes to javascript and browser issues, i'm
trying to code a small help module for my java app.i've went far
enough coding all the server side but i'm stuck with javascript now.

i'm trying to implement a tool tip behavior on a couple of input
element.
I just can't get to figure out the coordinates of the element in
question with respect to the page
especially when it is inside a scrollable container such as a DIV.
the tip has to be displayed right at the bottom left corner of the
element where the key is pressed therefor i would have to calculate
the coordinates of the element's current position on the page
regardless of how nested it is and taking into account the scrolled
amount of its parent container and ancestors each time.
i tried Peter-Paul Koch's findPos and tweeked it a bit as follows

function findPos(obj) {
if(obj==null)return [-1,-1];
var curleft =0;
var curTop=0;
if (obj.offsetParent) {
curleft = obj.offsetLeft;
curtop = obj.offsetTop;
while (obj = obj.offsetParent) {
curtop += obj.offsetTop-(obj.scrollTop?obj.scrollTop:0);
curleft += onj.offsetLeft(obj.scrollLeft?obj.scrollLeft:0);
}
}
return [curleft,curtop];

the problem is that offsetTop is not updated when i scroll.... i
always get a fixed value so that was not helping
thanks
o explanation ...

Oct 29 '07 #1
Share this Question
Share on Google+
2 Replies


P: n/a
steven acer wrote on 29 okt 2007 in comp.lang.javascript:
i'm illiterate when it comes to javascript and browser issues, i'm
trying to code a small help module for my java app.i've went far
enough coding all the server side but i'm stuck with javascript now.

i'm trying to implement a tool tip behavior on a couple of input
element.
I just can't get to figure out the coordinates of the element in
question with respect to the page
especially when it is inside a scrollable container such as a DIV.
the tip has to be displayed right at the bottom left corner of the
element where the key is pressed therefor i would have to calculate
the coordinates of the element's current position on the page
regardless of how nested it is and taking into account the scrolled
amount of its parent container and ancestors each time.
i tried Peter-Paul Koch's findPos and tweeked it a bit as follows

function findPos(obj) {
if(obj==null)return [-1,-1];
var curleft =0;
var curTop=0;
if (obj.offsetParent) {
curleft = obj.offsetLeft;
curtop = obj.offsetTop;
while (obj = obj.offsetParent) {
obj == obj.offsetParent

perhaps?

Not that I understand what you are after ;-)
curtop +=
obj.offsetTop-(obj.scrollTop?obj.scrollTop:0);
curleft +=
onj.offsetLeft(obj.scrollLeft?obj.scrollLeft:0);
}
}
return [curleft,curtop];

the problem is that offsetTop is not updated when i scroll.... i
always get a fixed value so that was not helping
thanks
o explanation ...



--
Evertjan.
The Netherlands.
(Please change the x'es to dots in my emailaddress)
Oct 29 '07 #2

P: n/a
steven acer wrote:
the problem is that offsetTop is not updated when i scroll....
Of course it isn't. But scrollTop is.
i always get a fixed value so that was not helping
Posting with proper spelling would increase
your chances of getting helpful replies.

http://jibbering.com/faq/
PointedEars
--
var bugRiddenCrashPronePieceOfJunk = (
navigator.userAgent.indexOf('MSIE 5') != -1
&& navigator.userAgent.indexOf('Mac') != -1
) // Plone, register_function.js:16
Oct 29 '07 #3

This discussion thread is closed

Replies have been disabled for this discussion.