-1

デモ

HTML:

<div id="relative">
  <div id="absolute"></div>
</div>

CSS:

#relative {
  position : relative;
  width    : 200px;
  height   : 200px;
  overflow : visible;
}
#absolute {
  position   : absolute;
  width      : 200px;
  height     : 300px;
  background : #eee;
}

JavaScript:

console.log($("#relative").get(0).scrollHeight);
$("#relative").css({
  "overflow-x" : "hidden",
  "overflow-y" : "scroll"
});
console.log($("#relative").get(0).scrollHeight);

chrome では "300, 300" を返し、firefox では 9, "200, 300" を返します。

オーバーフローを変更せずに「300」を検出する方法はありますか?

4

1 に答える 1

1

スクロールバーなし = scrollHeight なし。

要素のコンテンツが垂直スクロールバーを生成しない場合、その scrollHeight プロパティはその clientHeight プロパティと等しくなります。

https://developer.mozilla.org/en-US/docs/DOM/element.scrollHeight

于 2013-04-12T09:47:32.947 に答える