Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.01.2012, 22:09
Интересующийся
Отправить личное сообщение для land15 Посмотреть профиль Найти все сообщения от land15
 
Регистрация: 01.12.2011
Сообщений: 14

непонятно работает getComputedStyle с %
Есть такая функция получения CSS свойств в любой единице измерения:
function getStyleValue(e, name) {
if (name == 'float') name = 'cssFloat';

function getIEComputedStyle(e, name) {

  var value = e.currentStyle[name] || 0;
  if (isNaN(parseInt(value))) { value = 0; }
  var leftCopy = e.style.left
  var runtimeLeftCopy = e.runtimeStyle.left

  e.runtimeStyle.left = e.currentStyle.left
  e.style.left = (name === "fontSize") ? "1em" : value
  value = e.style.pixelLeft + "px";

  e.style.left = leftCopy 
  e.runtimeStyle.left = runtimeLeftCopy 
 
  return value
}
   return window.getComputedStyle ? (window.getComputedStyle(e, null)[name] || 0) : getIEComputedStyle(e, name);

}

Она взята отсюда, работает везде правильно.
Вот в этом участке возникает вопрос при задании внутренних отступов в процентах
availableWidth = VisibleWidth - parseInt(getStyleValue(e, 'borderLeftWidth')) - 
                                parseInt(getStyleValue(e, 'borderRightWidth'))  - 
                                parseInt(getStyleValue(e, 'paddingLeft')) - 
                                parseInt(getStyleValue(e, 'paddingRight')) + "px";
         e.style.width = availableWidth;
availableHeight = VisibleHeight - parseInt(getStyleValue(e, 'borderTopWidth')) - 
                                  parseInt(getStyleValue(e, 'borderBottomWidth')) - 
                                  parseInt(getStyleValue(e, 'paddingTop')) - 
                                  parseInt(getStyleValue(e, 'paddingBottom')) + "px";
         e.style.height = availableHeight;

availableWidth вычисляется правильно, availableHeight - нет, т.к. процентаж вычисляется почему-то от ширины, т.е если задано в CSS width:500px; height:400px; padding:10%; я получаю pLeft-50px, pRight-50px, pTop-50px and pBottom-50px (instead 40px).
Результат такой везде.
Видел кто такое? Что не так?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не работает код внутри циклов DZHETIGAPA Events/DOM/Window 1 21.06.2011 01:03
непонятно работает в IE васяпупкин jQuery 0 03.02.2010 16:29
ява-скрипт выборочно работает-не работает zeta777 Internet Explorer 0 20.01.2010 11:41
Динамическая HTML форма (FireFox - работает, IE - не работает) dm1tr1y Общие вопросы Javascript 10 11.12.2009 15:59
Скрипт меню-гармошки работает выборочно Extern Элементы интерфейса 2 23.02.2009 15:32