I have been working on an Accordion class for MooTools that is more catered to what I need, but have noticed that in IE7 (which I still need to support), element.scrollHeight returns an incorrect value unless I specifically reference it before using it. For example, I have an element with the classes "container" and "collapsed" & following styles that is hidden from the page:
.container {
overflow: hidden;
}
/* removed when made visible */
.collapsed {
left: -9999em;
position: absolute;
top: 0px;
}
Bu öğeyi görüntülemem gerektiğinde, sınıfı kaldırırım ve scrollHeight değerini hesaplıyorum. Çoğu tarayıcıda, bu iyi çalışıyor. Ancak, IE7'de aşağıdaki kod, öğenin gerçek scrollHeight değerinden önemli ölçüde daha küçük bir yükseklik döndürür:
// remove the collapsed class
elem.removeClass('collapsed');
alert(elem.scrollHeight);//consistently '69px' across all accordion folds
Ancak, önce elem.scrollHeight öğesine başvurursam, uyarı scrollHeight doğrudur:
// remove the collapsed class
elem.removeClass('collapsed');
if (elem.scrollHeight) alert(elem.scrollHeight);//the scrollHeight is correct
IE7, öğenin scrollHeight değerini düzgün bir şekilde yeniden hesaplamak için birkaç milisaniyeye ihtiyaç duyuyor mu, yoksa başka bir şey var mı?
Yardımın için teşekkürler!