JavaScript And DHTML Cookbook [Electronic resources] نسخه متنی

اینجــــا یک کتابخانه دیجیتالی است

با بیش از 100000 منبع الکترونیکی رایگان به زبان فارسی ، عربی و انگلیسی

JavaScript And DHTML Cookbook [Electronic resources] - نسخه متنی

Danny Goodman

| نمايش فراداده ، افزودن یک نقد و بررسی
افزودن به کتابخانه شخصی
ارسال به دوستان
جستجو در متن کتاب
بیشتر
تنظیمات قلم

فونت

اندازه قلم

+ - پیش فرض

حالت نمایش

روز نیمروز شب
جستجو در لغت نامه
بیشتر
لیست موضوعات
توضیحات
افزودن یادداشت جدید










13.8 Determining the Location of a Nonpositioned Element


NN 6, IE 5


13.8.1 Problem


You want to ascertain
the pixel coordinates of an element that the browser has placed
during normal page flow.


13.8.2 Solution


The following getElementPosition(
)
function returns an object with
properties for the left and top absolute coordinates of the element
whose ID is passed as an argument:

function getElementPosition(elemID) {
var offsetTrail = document.getElementById(elemID);
var offsetLeft = 0;
var offsetTop = 0;
while (offsetTrail) {
offsetLeft += offsetTrail.offsetLeft;
offsetTop += offsetTrail.offsetTop;
offsetTrail = offsetTrail.offsetParent;
}
if (navigator.userAgent.indexOf("Mac") != -1 &&
typeof document.body.leftMargin != "undefined") {
offsetLeft += document.body.leftMargin;
offsetTop += document.body.topMargin;
}
return {left:offsetLeft, top:offsetTop};
}

This function is compatible with browsers that support W3C DOM
element-referencing syntax.


13.8.3 Discussion


The typical purpose of establishing the absolute location of an
element on the page is to position some other element on it or in
relation to it. Because the location of inline elements can vary
widely with the browser window size and font situation, the values
need to be calculated after the page has loaded, is reflowed in
response to other dynamic content additions and deletions, or the
window is resized.

Although some browser versions report the accurate value simply via
the offsetLeft and offsetTop
properties of an element, others require the addition of any offsets
imposed by parent elements offering positioning contexts (the element
indicated by the offsetParent property).
Therefore, this function includes a loop that iterates through the
offsetParent hierarchy of the element passed as an
argument to the function, accumulating additional coordinate offsets
if they exist.

This function is not needed for CSS-type absolute-positioned elements
because you can obtain the correct coordinates directly via the
style.left and style.top
properties (or via the effective style property, as retrieved through
the script shown in Recipe 11.12).


13.8.4 See Also


Recipe 11.12 for reading initial style properties set in
<style> and <link>
tags.


/ 249