Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Определение и смена реальной абсолютной позиции (https://javascript.ru/forum/misc/1810-opredelenie-i-smena-realnojj-absolyutnojj-pozicii.html)

SunnyDay 19.09.2008 18:12

Определение и смена реальной абсолютной позиции
 
Всем привет! Передо мной встала одна проблемка, мне нужно определить а затем переустановить реальную абсолютную позицию. Через свойства стиля определяется не совсем корректная позиция, если над дочерним элементом (к примеру <A>) стоит родитель <TD>, чья позиция также абсолютна.

вот например в этом коде
Код:

<HTML>
<TITLE>ТЕСТ</TITLE>
<BODY>

<table >
<tr>
<td style="position: absolute; left: -100px;">
<b>
<a onmousedown="w(this,'175.179');" href="http://yandex.ru/" id="fkk" style="position: absolute;">
Йа сЦыЛкОоо
</a>
</table>

</BODY>
</HTML>
<script type="text/JavaScript">
elem = document.getElementById('fkk');
elem.style.left=String(100)+"px";
</script>

после выпонения скрипта реальная позиция элемента fkk будет равна 0px, но в стиле будет записано 100px.

Так вот мне нужна как-то определить эту 'реальную позицию', и затем изменить её (например прибавить 100px).

Помогите пожалуйста, если кто-либо сталкивался.

ZoNT 19.09.2008 18:23

<b> не закрыт...
String(100)+"px" - зачем это? 100+"px" уже не катит?
Указывать td position: absolute - самоубийство.

Реальная позиция относительно чего? Относительно документа? Тогда всё правильно. В стиле будет записано 100px (относительно родителя, то биш относительно td).

Определяй позицию, в чём проблема то?

Kolyaj 20.09.2008 20:58

element.offsetLeft
element.offsetTop

SunnyDay 22.09.2008 10:36

ZoNT:
Это то всё понятно, но моя задача в данный момент - сделать некие универсальные скрипты, встраиваемые без глюков в любую стороннюю страницу. А в некоторых страничках типа яндексовских, бывает и похлеще бред..

Kolyaj:
спасибо, сейчас попробую

SunnyDay 22.09.2008 10:46

Kolyaj:
Жаль, но это свойство во-первых только для чтения, во-вторых реальную позицию оно мне не показало..

SunnyDay 22.09.2008 11:25

И ещё один косяк с абсолютная позиция и margin - на некоторые элементы с абсолютом margin у родителя(в моём случае body) не влияет, а на некоторые влияет, не знаете где узнать конкретнее, на какие?

Вообще раскрою суть проблеммы, чтобы было понятнее: мне необходимо написать скрипт, который с минимальным разрушением структуры страницы делает отступ от края справа любой страницы, казалось бы проблемма решается с помощью body.marginLeft, но тут как раз встаёт косяк с абсолютными элементами страницы.
Написал скрипт, который находит все абсолютные элементы, и смещает их, но оказывается некоторые абсолютные элементы смещаются сами с маргином.. Может кто сталкивался с подобным, помогите.

ZoNT 22.09.2008 12:02

Бери всё что в боди, помещай в див (это будет глобальный такой контейнер). Делай диву позишн=релэйтив. После этого делай бод марджин-лефт.

SunnyDay 22.09.2008 12:43

ZoNT,
Я так и делал сначала, но тут кроется одна запара - если я добавляю элемент после боди(DIV, TABLE), и заключаю в него содержимое документа, то на некоторых страничках (опять-же яндекс) выскакивают ошибки в их скриптах, потому что они к некоторым элементам в своих свкриптах обращаются так:
document.body.elem0...

Сейчас попробовал самому BODY присвоить свойство relative - уже получше, но категорически ничего не смещается например на ogame.ru..

Спасибо, буду пока разбираться с извратами CSS..

ZoNT 22.09.2008 12:51

тогда делай html {margin-left:100px;}

SunnyDay 22.09.2008 13:50

разобрался с некототорыми багами - забыл про position:fixed..
ZoNT, спасибо


Часовой пояс GMT +3, время: 01:08.