Javascript firefox滚动高度vs溢出

Javascript firefox滚动高度vs溢出,javascript,html,css,firefox,Javascript,Html,Css,Firefox,HTML: <div id="relative"> <div id="absolute"></div> </div> #relative { position : relative; width : 200px; height : 200px; overflow : visible; } #absolute { position : absolute; width : 200px; heig

HTML:

<div id="relative">
  <div id="absolute"></div>
</div>
#relative {
  position : relative;
  width    : 200px;
  height   : 200px;
  overflow : visible;
}
#absolute {
  position   : absolute;
  width      : 200px;
  height     : 300px;
  background : #eee;
}
console.log($("#relative").get(0).scrollHeight);
$("#relative").css({
  "overflow-x" : "hidden",
  "overflow-y" : "scroll"
});
console.log($("#relative").get(0).scrollHeight);
JavaScript:

<div id="relative">
  <div id="absolute"></div>
</div>
#relative {
  position : relative;
  width    : 200px;
  height   : 200px;
  overflow : visible;
}
#absolute {
  position   : absolute;
  width      : 200px;
  height     : 300px;
  background : #eee;
}
console.log($("#relative").get(0).scrollHeight);
$("#relative").css({
  "overflow-x" : "hidden",
  "overflow-y" : "scroll"
});
console.log($("#relative").get(0).scrollHeight);
它在chrome中返回“300300”,在firefox中返回“200300”


有没有办法在不改变溢出的情况下检测“300”?

无滚动条=无滚动高度

当元素的内容不生成垂直滚动条时,其scrollHeight属性等于其clientHeight属性


您想做什么?请详细解释。你们不想只取子元素的高度吗$(“#relative>div”)或仅仅$(“#absolute”)?这只是一个例子。真实网页中存在大量嵌套的相对和绝对元素。检测滚动高度是使自定义滚动条正常工作的唯一方法。滚动高度=0$('#parent>div').each(function(){height=height+$(this.height()});不知道?我不知道“жжааааааааааааа。也许“我笑得很厉害”=)您可以在任意序列中嵌套任意数量的相对块和绝对块。只有scrollHeight可以检测是否有绝对块从根块弹出