Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Методика быстрого перебора элементов с css-свойством position (https://javascript.ru/forum/misc/10327-metodika-bystrogo-perebora-ehlementov-s-css-svojjstvom-position.html)

uonax 28.06.2010 17:27

Методика быстрого перебора элементов с css-свойством position
 
Необходим какой-то способ перебора всех элементов на странице, имеющих свойства position:absolute или position:relative. Необходимо перебрать их все и определить их координаты. Главный критерий, чтобы это было очень быстро.
Надо ли перебирать каждый элемент на странице и смотреть его свойство el.style.position? Это, наверное, долго и браузер может притормаживать. Может существует более элегантное, а главное, быстрое решение или методика?

Kolyaj 28.06.2010 17:30

Цитата:

Сообщение от uonax
Надо ли перебирать каждый элемент на странице

Да.

Цитата:

Сообщение от uonax
и смотреть его свойство el.style.position

Если position указан в CSS, а не в атрибуте style, то всё ещё хуже.

uonax 28.06.2010 18:55

А если в css установлен? Как определять свойство?

exec 28.06.2010 18:57

Object.prototype.getCSSProperty = function (prop) {
return window.getComputedStyle( this, null )[prop] || this.currentStyle[prop];
};


document.links[0].getCSSProperty('marginLeft');

Kolyaj 28.06.2010 18:57

http://javascript.ru/blog/Andrej-Par...cheniya-stilya

uonax 28.06.2010 19:33

Цитата:

Сообщение от exec
Object.prototype.getCSSProperty = function (prop) {
return window.getComputedStyle( this, null )[prop] || this.currentStyle[prop];
};
document.links[0].getCSSProperty('marginLeft');

В prototype не разбираюсь вообще. Полегче что-нибудь предлагайте, как никак это вопрос начинающего...

exec 29.06.2010 09:18

Вариант без использования прототипа:

getCSSProperty = function (o, prop) { 
return window.getComputedStyle( o, null )[prop] || o.currentStyle[prop]; 
};


getCSSProperty(document.links[0], 'marginLeft');


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