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を正しく再計算するために数ミリ秒の追加が必要ですか?

ご協力ありがとうございました!

2

1 答え

この表を参照してください。

要素にスクロールバーがない場合、IEはscrollHeight   コンテンツの実際の高さに等しい。高さではなく   素子。 scrollWidthは正しいですが、IE8では5ピクセルです   オフです。

また、scrollHeightはie5-7の場合は「間違っている」とマークされています。 たぶんoffsetHeightで動作しますか?または、他のプロパティから何とか計算しますか?

また、こちらで述べたように...

あなたが何をしても、IEのアクセスは身体の負荷の前ではなく   あなたが奇妙な結果を得るでしょう。

0
追加された
JavaScript - 日本のコミュニティ
JavaScript - 日本のコミュニティ
2 参加者の

日本人コミュニティのjavascript