Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.09.2008, 18:12
SunnyDay
 
Сообщений: n/a

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

Помогите пожалуйста, если кто-либо сталкивался.
Ответить с цитированием
  #2 (permalink)  
Старый 19.09.2008, 18:23
Флудер
Отправить личное сообщение для ZoNT Посмотреть профиль Найти все сообщения от ZoNT
 
Регистрация: 25.07.2008
Сообщений: 1,271

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

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

Определяй позицию, в чём проблема то?
Ответить с цитированием
  #3 (permalink)  
Старый 20.09.2008, 20:58
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

element.offsetLeft
element.offsetTop
Ответить с цитированием
  #4 (permalink)  
Старый 22.09.2008, 10:36
SunnyDay
 
Сообщений: n/a

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

Kolyaj:
спасибо, сейчас попробую
Ответить с цитированием
  #5 (permalink)  
Старый 22.09.2008, 10:46
SunnyDay
 
Сообщений: n/a

Kolyaj:
Жаль, но это свойство во-первых только для чтения, во-вторых реальную позицию оно мне не показало..
Ответить с цитированием
  #6 (permalink)  
Старый 22.09.2008, 11:25
Кандидат Javascript-наук
Отправить личное сообщение для SunnyDay Посмотреть профиль Найти все сообщения от SunnyDay
 
Регистрация: 22.09.2008
Сообщений: 111

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

Вообще раскрою суть проблеммы, чтобы было понятнее: мне необходимо написать скрипт, который с минимальным разрушением структуры страницы делает отступ от края справа любой страницы, казалось бы проблемма решается с помощью body.marginLeft, но тут как раз встаёт косяк с абсолютными элементами страницы.
Написал скрипт, который находит все абсолютные элементы, и смещает их, но оказывается некоторые абсолютные элементы смещаются сами с маргином.. Может кто сталкивался с подобным, помогите.
Ответить с цитированием
  #7 (permalink)  
Старый 22.09.2008, 12:02
Флудер
Отправить личное сообщение для ZoNT Посмотреть профиль Найти все сообщения от ZoNT
 
Регистрация: 25.07.2008
Сообщений: 1,271

Бери всё что в боди, помещай в див (это будет глобальный такой контейнер). Делай диву позишн=релэйтив. После этого делай бод марджин-лефт.
Ответить с цитированием
  #8 (permalink)  
Старый 22.09.2008, 12:43
Кандидат Javascript-наук
Отправить личное сообщение для SunnyDay Посмотреть профиль Найти все сообщения от SunnyDay
 
Регистрация: 22.09.2008
Сообщений: 111

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

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

Спасибо, буду пока разбираться с извратами CSS..
Ответить с цитированием
  #9 (permalink)  
Старый 22.09.2008, 12:51
Флудер
Отправить личное сообщение для ZoNT Посмотреть профиль Найти все сообщения от ZoNT
 
Регистрация: 25.07.2008
Сообщений: 1,271

тогда делай html {margin-left:100px;}
Ответить с цитированием
  #10 (permalink)  
Старый 22.09.2008, 13:50
Кандидат Javascript-наук
Отправить личное сообщение для SunnyDay Посмотреть профиль Найти все сообщения от SunnyDay
 
Регистрация: 22.09.2008
Сообщений: 111

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск