質問: IE7のscrollHeightは、使用前に特に参照されていない限り、間違った値を返します 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; } ``` この要素を表示する必要があるときは、クラスを削除して、その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を正しく再計算するために数ミリ秒の追加が必要ですか? ご協力ありがとうございました!
回答: この表を参照してください。 > 要素にスクロールバーがない場合、IEはscrollHeight > コンテンツの実際の高さに等しい。高さではなく > 素子。 scrollWidthは正しいですが、IE8では5ピクセルです > オフです。 > > また、scrollHeightはie5-7の場合は「間違っている」とマークされています。 たぶんoffsetHeightで動作しますか?または、他のプロパティから何とか計算しますか? また、こちらで述べたように... > あなたが何をしても、IEのアクセスは身体の負荷の前ではなく > あなたが奇妙な結果を得るでしょう。 > >