2012-06-06 2 views
3

Использование JavaScript - мы можем установить относительное положение, такие какПолучение позиции элемента - {absolute | relative | fixed} возвращающее значение null?

object.style.position="absolute"||"fixed"||"relative"

элемент Но, используя тот же console.log(object.style.position) - он не возвращает позицию, нанесенный на объект - он возвращает NULL. Я что-то упустил здесь или есть другой способ добиться того, чего я пытаюсь достичь?

+0

Он работает: http://jsfiddle.net/9TpfT/ – Mageek

+0

@mageek - не работает (то, что я на самом деле хочу) версия - [Fiddle] (http://jsfiddle.net/ 9TpfT/1 /) –

+0

Он вернет null, только если он не был явно установлен. Если он был установлен, он вернет значение. –

ответ

4

.style представляет то, что установлено на самом элементе, очень похоже на атрибут style.

Вместо этого вы можете использовать getComputedStyle: http://jsfiddle.net/qAbTz/1/.

var div = document.getElementById("div"); 

console.log(div.style.position);    // "" (not null by the way) 
console.log(getComputedStyle(div).position);​ // "fixed" 
+0

Совместимость с браузером? .. [ссылка MDN] (https://developer.mozilla.org/en/DOM/window.getComputedStyle#Browser_compatibility) .. но, quirks обеспечил работу вокруг .. так, будет изучать ее. спасибо. :) –

+0

@Vivek Chandra: jQuery поддерживает его и в других браузерах, и я верю; вы можете посмотреть на источник, чтобы узнать, как это сделать. Похоже, что он использует '.currentStyle', если он доступен. – pimvdb

+0

В настоящее время не используется jQuery. Хотите решить эту проблему самостоятельно - изучая это решение [quirks] (http://www.quirksmode.org/dom/getstyles.html) .. надеясь, что это решит мою проблему –

0

Отметим также (по той же логике, представленной pimvdb), если указать начальную позицию как часть стиля объекта, он доступен по div.style.position.

<div id="div" style="position: absolute;"></div> 

http://jsfiddle.net/qAbTz/4/

Смежные вопросы