これが、http://jsfiddle.net/YNKws/です。
<div id="div1" style="padding: 2px; overflow: auto;">
<div style="height:30px;">lalala</div>
<div style="height:30px;">lalala</div>
</div>
var d = $("#div1");
for (var i = 0; i < 5; i++) {
console.log(d.height(),d[0].scrollHeight);
d.height(d.height() - 1);
}
パディングとoverflow:autoを備えたdivがあります。そしてFirefoxでは、divのscrollHeight値の奇妙な振る舞いがあります。divの高さを元の高さよりも小さく設定すると、スクロールバーがすぐに表示され、scrollHeightの値は同じままであると予想されるのは当然です。Chromeはこれらの表現に適していますが、Firefoxには適していません。最後のものはスクロールバーを描画せず、元の高さの偏差がdivのパディングよりも小さい場合、下部のパディングとscrollHeightを減らします。
それはバグですか、この「バグ」の修正はありますか?