Val Petruchek

подписывайтесь, а то хуже будет!  

ПОДПИСЫВАЙТЕСЬ НА RSS

« Я — PHP-программист!
Список хронофагов »

JavaScript: получение абсолютных координат элемента

15.02.07 @ 22:44 — Programming, JavaScript

Вот такая изящная функция для опреления абсолютных координат элемента:

function getAbsolutePos(el)
	{
	var r = { x: el.offsetLeft, y: el.offsetTop };
	if (el.offsetParent)
		{
		var tmp = getAbsolutePos(el.offsetParent);
		r.x += tmp.x;
		r.y += tmp.y;
		}
	return r;
	}

3 Comments »

  1. работает не правильно, если на одном из элементов прокручен скроллбар..

    Comment by dzone — 07.11.2007 @ 18:00

  2. Вся соль, как всегда, в определениях. Что значит “правильно” и “неправильно”, по-вашему?

    Comment by Val Petruchek — 11.11.2007 @ 17:31

  3. var getRect = (function(){
    if (document.getBoxObjectFor)
    return function(e){
    var b = document.getBoxObjectFor(e);
    // alert(b.x+” , “+b.x+b.width+” , “+b.y+” , “+b.y+b.height);
    return [b.x, b.x+b.width, b.y, b.y+b.height];
    }
    if (document.body.getBoundingClientRect)
    return function(e){
    var b = e.getBoundingClientRect(), s = getScroll();
    //alert(b.left+” , “+b.right+” , “+b.top+” , “+b.bottom);
    return [b.left+s[0], b.right+s[0], b.top+s[1], b.bottom+s[1]];
    }
    return function(e){
    var x=0, y=0, w=e.offsetWidth, h=e.offsetHeight, s = getScroll();
    for(; e!=null; e = e.offsetParent){
    x += e.offsetLeft;
    y += e.offsetTop;
    }
    // alert(x+” , “+y);
    return [x+s[0], x+w+s[0], y+window.screenTop+s[1], y+h+window.screenTop+s[1]];
    }
    })()

    Comment by lemur — 29.05.2008 @ 11:32

RSS feed for comments on this post. TrackBack URI

Leave a comment

  
Реклама::

 
Реклама::