如何确定scrollHeight?


94

如何确定除法的scrollHeight使用CSS溢出:自动?

我试过了:

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

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

所以我在想以下内容:

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

谢谢,

布赖恩


使用scrollHeight()有什么问题?
Badr Hari

2
@BadrHari:scrollHeight()jQuery中没有函数。
TJ Crowder

这是$('test')。get(0).scrollHeight();
JFouad '16

Answers:


88

scrollHeight 是常规的javascript属性,因此您不需要jQuery。

var test = document.getElementById("foo").scrollHeight;

谢谢!这对我有用:var height = document.getElementById(“ chatLog”)。scrollHeight-$('#chatLog')。height(); $('#chatLog')。scrollTop(height);
布莱恩(Brian)

6
浏览器支持如何?所有主要版本的浏览器都支持吗?IE8 +?
SexyBeast

2
@Cupidvogel链接的MDN页面显示IE8 +
Dennis

314

jQuery中的正确方法是-

  • $('#test').prop('scrollHeight') 要么
  • $('#test')[0].scrollHeight 要么
  • $('#test').get(0).scrollHeight

希望能帮助到你。


16
假设提问者已经使用jQuery,则为$('#test')[0] .scrollHeight +1。
杰克逊

12
这应该是可接受的答案,因为它可以回答问题。
调用

它应该是公认的答案。请注意,该prop方法需要jquery 1.6或更高版本。从我+1
Vayne

2
请注意,这仅返回找到的“第一个”元素的scrollHeight,并且如果当前“隐藏”任何元素,即使其他元素确实具有正的scrollHeight,您也可能在此处得到零,FWIW :)
rogerdpack

@rogerdpack先生,好点!尽管在此示例中,他使用ID而不是类作为选择器,所以他应该可以,但仍然很不错。
dave4jr
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.