Сообщение от dmitry111
|
Они показывают значения относительно окна браузера. И если элемент находится в центре окна и не равен размерам окна, то вывод значений этих свойств некорректен
|
Если дело в этом, и тебе нужно нормально считывать координаты элемента.
Давно писал самописные всплывушки(см. аттач). Может стиль не супер, но сейчас посмотрел в FF и в IE9, все работает, как и прежде. Для оперы только надо изменить поправку и снести все касающееся IE6-IE7.
//вычисляем координаты элемента и относительно их устанвливаем подсказку
var coords=getOffset(this);
document.getElementById(help_up_id).style.top=coords['top'] - 85 + 'px'
document.getElementById(help_up_id).style.left=coords['left'] - 14 + 'px';
//поправки для нехороших браузеров.
if (/MSIE (5\.5|6).+Win/.test(navigator.userAgent))
{
document.getElementById(help_up_id).style.top=coords['top'] - 73 + 'px';
document.getElementById(help_up_id).style.left=coords['left'] - 8 + 'px';
}
if (/MSIE (7).+Win/.test(navigator.userAgent))
{
document.getElementById(help_up_id).style.top=coords['top'] - 70+ 'px';
}
var ua = navigator.userAgent.toLowerCase();
isOpera = (ua.indexOf("opera") != -1);
if (isOpera){
document.getElementById(help_up_id).style.top=coords['top'] - 73 + 'px';
}
//Подсказкам для ссылок небольшая поправка координат вправо и вниз.
if(this.tagName=='A')
{
var help_top=parseInt(document.getElementById(help_up_id).style.top);
var help_left=parseInt(document.getElementById(help_up_id).style.left);
//поправки для нехороших браузеров.
if (isOpera){
document.getElementById(help_up_id).style.top=help_top +6 + 'px';
document.getElementById(help_up_id).style.left=help_left +35 + 'px';
}
else if
(/MSIE (5\.5|6).+Win/.test(navigator.userAgent))
{
document.getElementById(help_up_id).style.top=help_top +6 + 'px';
document.getElementById(help_up_id).style.left=help_left +35 + 'px';
}
else if
(/MSIE (7).+Win/.test(navigator.userAgent))
{
document.getElementById(help_up_id).style.top=help_top + 6 + 'px';
document.getElementById(help_up_id).style.left=help_left +35 + 'px';
}
else
{
document.getElementById(help_up_id).style.top=help_top + 19 + "px";
document.getElementById(help_up_id).style.left=help_left + 35 + "px";
}
}