如何确定scrollHeight?

回答 4 浏览 22.2万 2011-09-11

如何使用css overflow:auto来确定一个分部的滚动高度?

我已经试过了。

$('test').scrollHeight();
$('test').height(); but that just returns the size of the div not all the content

最终,我试图创建一个聊天,并始终让滚动条显示在屏幕上的当前消息。

因此,我在想类似于以下的问题。

var test = $('test').height();
$('test').scrollTop(test);

谢谢你。

布莱恩

Brian 提问于2011-09-11
使用scrollHeight()有什么不对吗?Badr Hari 2011-09-11
@BadrHari: 在jQuery中没有scrollHeight()函数。T.J. Crowder 2015-02-20
它是$('test').get(0).scrollHeight()。JFouad 2016-08-11
4 个回答
#1楼
得票数 352

在jQuery中正确的方法是 -

  • $('#test').prop('scrollHeight')
  • $('#test')[0].scrollHeight
  • $('#test').get(0).scrollHeight
Anmol Saraf 提问于2013-03-13
Rashi Goyal 修改于2020-11-06
+1为$('#test')[0].scrollHeight,考虑到提问者已经使用了jQuery。Jackson 2013-08-10
这应该是公认的答案,因为它回答了这个问题。invot 2016-02-19
它应该是被接受的答案。注意,prop方法需要1.6或更大的jquery版本。来自我的+1user7739271 2017-07-25
注意,这只返回 "第一个 "发现的元素的滚动高度,如果有任何元素目前是 "隐藏 "的,你可能会得到一个零,即使其他元素确实有一个正的滚动高度,FWIW :)rogerdpack 2017-10-21
我更喜欢$('#test').prop('scrollHeight'),其他两个在元素不存在的情况下,会出现TypeError。kapoko 2021-10-25
#2楼 已采纳
得票数 102

scrollHeight 是一个常规的 javascript 属性,所以你不需要 jQuery。

var test = document.getElementById("foo").scrollHeight;
Dennis 提问于2011-09-11
groovecoder 修改于2015-06-12
谢谢!这对我有用: var height = document.getElementById("chatLog").scrollHeight - $('#chatLog').height(); $('#chatLog').scrollTop(height)。Brian 2011-09-11
浏览器支持情况如何?所有主要版本的浏览器都支持吗?IE8以上吗?SexyBeast 2014-01-21
@Cupidvogel 链接的MDN页面上写着IE8+。Dennis 2014-01-22
要获得完整的文件高度。document.querySelector("body").scrollHeight;Rehmat 2022-06-12
#3楼
得票数 2

你也可以使用。

$('#test').context.scrollHeight

slunt32 提问于2021-01-21
prop('scrollHeight')工作,但context.scrollHeight没有:"消息。未发现的类型错误。无法读取未定义的属性'scrollHeight'"Still.Tony 2021-04-15
现在最好不要用这个方法,它在3.0中被删除了。api.jquery.com/contextslunt32 2021-04-23
#4楼
得票数 1

你可以尝试这样做

$('body')[0].scrollHeight
Abhishek Goswami 提问于2022-08-17