scrollHeightを決定するにはどうすればよいですか?


95

除算のscrollHeightを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);

ありがとうございました、

ブライアン


scrollHeight()の使用の何が問題になっていますか?
Badr Hari、

2
@BadrHari:scrollHeight()jQueryには関数がありません。
TJクラウダー

$( 'test')。get(0).scrollHeight();です。
JFouad

回答:


90

scrollHeight 通常のjavascriptプロパティなので、jQueryは必要ありません。

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

ありがとう!これは私にとってはうまくいきました:var height = document.getElementById( "chatLog")。scrollHeight-$( '#chatLog')。height(); $( '#chatLog')。scrollTop(height);
ブライアン

6
ブラウザのサポートはどうですか?ブラウザのすべてのメジャーバージョンがサポートしていますか?IE8 +?
SexyBeast 2014年

2
@CupidvogelリンクされたMDNページはIE8 +を示しています
Dennis

316

jQueryの正しい方法は-

  • $('#test').prop('scrollHeight') または
  • $('#test')[0].scrollHeight または
  • $('#test').get(0).scrollHeight

それが役に立てば幸い。


16
質問者が既にjQueryを使用している場合、$( '#test')[0] .scrollHeightの+1。
ジャクソン

12
質問に答えるので、これは受け入れられる答えになるはずです。
16

それは受け入れられる答えであるべきです。ことに注意してくださいprop方法は、jQueryのバージョン1.6以上が必要です。私からの+1
Vayne

2
なお、これはのみを返し、「最初の」要素のscrollHeightが見つかりましたし、任意の要素は、現在、「隠された」されている場合は他の人が肯定scrollHeight、FWIW :)持っている場合でも、あなたはここでゼロを得るかもしれない
rogerdpack

@rogerdpackグッドポイントサー!この例では、セレクターとしてクラスの代わりにIDを使用しているため、大丈夫ですが、それでも良い点です。
dave4jr
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.