Показать сообщение отдельно
  #3 (permalink)  
Старый 06.10.2014, 13:51
Интересующийся
Отправить личное сообщение для mixtape Посмотреть профиль Найти все сообщения от mixtape
 
Регистрация: 19.06.2014
Сообщений: 13

Сообщение от Gvozd Посмотреть сообщение
Если добавить в конце нехватающую фигурную скобку, то в IE11 в режиме эмуляции IE8 ваш пример прекрасно работает
Я неправильно сформировал свой вопрос. Постараюсь по-другому:
Объект currentStyle, через который получают значения css-свойств в IE8, возвращает, в отличии от getComputedStyle, не вычисленное значение блока, а то которое было прописано в стилях. Если в стилях его нет, то он возвращает строку "auto". У меня у блока высота в стилях не прописана, то есть она формируется его содержимым, а вычисленное значение данной высоты нужно получить для организации анимированного hide. Если он будет возвращать "auto", а не число, то в алгоритме получится NaN, что приведёт к тому, что анимация работать не будет.

Посему вопрос моей проблемы таков: как получить вычисленное (фактическое значение) свойства в IE8, если оно формируется содержимым, а не задаётся вручную в стилях?

Вот пример кода:
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>title</title>
  <script>
  window.onload = function () {
    var elem = document.getElementById("parent");
    document.getElementById("output").innerHTML = getStyle(elem).height;
  };
  function getStyle(elem) {
    var style = window.getComputedStyle ? getComputedStyle(elem, null) : elem.currentStyle;
    return style;
  }
  </script>
  <style>
  #parent {
    border: 1px solid gray;
    background-color: #f6f6f6;
    border-radius: 5px;
    width: 80%;
    /*height НЕ ЗАДАНА, А ФОРМИРУЕТСЯ СОДЕРЖИМЫМ*/
  }
  </style>
</head>
<body>
  <p id="output">тут будет высота блока</p>
  <div id="parent">
    <div style="height: 100px; width: 100px;">fgdfgdfg</div>
    <div style="height: 100px; width: 100px;">fgdfgfdg</div>
  </div>
</body>
</html>

Здесь парсится в параграф не значение вычисленной высоты, как это делают IE9 и прочие браузеры, поддерживающие getComputerStyle, а строку "auto". Надеюсь, что нормально объяснил суть своей проблемы.
Ответить с цитированием