Я работаю над классом Accordion для MooTools, который более удовлетворен тем, что мне нужно, но заметил, что в IE7 (который мне все еще нужно поддерживать) element.scrollHeight возвращает неправильное значение, если я специально не ссылаюсь на него раньше используй это. Например, у меня есть элемент с классами "container" и "collapsed" и следующие стили, скрытые со страницы:
.container {
overflow: hidden;
}
/* removed when made visible */
.collapsed {
left: -9999em;
position: absolute;
top: 0px;
}
Когда мне нужно отобразить этот элемент, я удаляю класс и вычисляю его scrollHeight. В большинстве браузеров это работает отлично. Однако в IE7 следующий код возвращает высоту, которая значительно меньше фактического элемента scrollHeight:
// remove the collapsed class
elem.removeClass('collapsed');
alert(elem.scrollHeight); // consistently '69px' across all accordion folds
Однако, если я сначала ссылаюсь на elem.scrollHeight, предупрежденный scrollHeight верен:
// remove the collapsed class
elem.removeClass('collapsed');
if (elem.scrollHeight) alert(elem.scrollHeight); // the scrollHeight is correct
Требуется ли IE7 еще несколько миллисекунд для правильного пересчета элемента scrollHeight или есть что-то еще в игре?
Благодарим за помощь!