Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.06.2010, 16:27
Аспирант
Отправить личное сообщение для uonax Посмотреть профиль Найти все сообщения от uonax
 
Регистрация: 13.07.2009
Сообщений: 38

Методика быстрого перебора элементов с css-свойством position
Необходим какой-то способ перебора всех элементов на странице, имеющих свойства position:absolute или position:relative. Необходимо перебрать их все и определить их координаты. Главный критерий, чтобы это было очень быстро.
Надо ли перебирать каждый элемент на странице и смотреть его свойство el.style.position? Это, наверное, долго и браузер может притормаживать. Может существует более элегантное, а главное, быстрое решение или методика?
Ответить с цитированием
  #2 (permalink)  
Старый 28.06.2010, 16:30
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

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

Сообщение от uonax
и смотреть его свойство el.style.position
Если position указан в CSS, а не в атрибуте style, то всё ещё хуже.
Ответить с цитированием
  #3 (permalink)  
Старый 28.06.2010, 17:55
Аспирант
Отправить личное сообщение для uonax Посмотреть профиль Найти все сообщения от uonax
 
Регистрация: 13.07.2009
Сообщений: 38

А если в css установлен? Как определять свойство?
Ответить с цитированием
  #4 (permalink)  
Старый 28.06.2010, 17:57
Профессор
Отправить личное сообщение для exec Посмотреть профиль Найти все сообщения от exec
 
Регистрация: 21.01.2010
Сообщений: 1,022

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


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

Последний раз редактировалось exec, 28.06.2010 в 18:00.
Ответить с цитированием
  #5 (permalink)  
Старый 28.06.2010, 17:57
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

http://javascript.ru/blog/Andrej-Par...cheniya-stilya
Ответить с цитированием
  #6 (permalink)  
Старый 28.06.2010, 18:33
Аспирант
Отправить личное сообщение для uonax Посмотреть профиль Найти все сообщения от uonax
 
Регистрация: 13.07.2009
Сообщений: 38

Сообщение от exec
Object.prototype.getCSSProperty = function (prop) {
return window.getComputedStyle( this, null )[prop] || this.currentStyle[prop];
};
document.links[0].getCSSProperty('marginLeft');
В prototype не разбираюсь вообще. Полегче что-нибудь предлагайте, как никак это вопрос начинающего...
Ответить с цитированием
  #7 (permalink)  
Старый 29.06.2010, 08:18
Профессор
Отправить личное сообщение для exec Посмотреть профиль Найти все сообщения от exec
 
Регистрация: 21.01.2010
Сообщений: 1,022

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

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


getCSSProperty(document.links[0], 'marginLeft');
Ответить с цитированием
Ответ



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

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