2009-05-23 11 views
2

スクロール可能なdivにテキスト(div)を追加しようとしていて、自動的にその下をスクロールしようとしています。JQueryを使用してIE8でScrollHeightが更新されない

IE8でこれを実行しようとすると何らかの理由で機能しません。 'alert'行のコメントを外すと、IE8はScrollHeight属性の2つの値を返します。

Jqueryは非同期で実行されますか、またはDOMの更新に時間がかかりますか?

これを処理する正しい方法は何ですか?問題の

HTMLページ:

スタイル:

.scrollbox 
{ 
    border-style: solid; 
    overflow-y: scroll; 
    padding: 5px; 
    margin: 20px; 
    border-color: #C0C0C0; 
    height: 400px; 
    width: 500px; 
    font-family: "Times New Roman", Times, serif; 
    font-size: 20px; 
    color: #333333; 
} 

jQueryのスクリプト:

$(document).ready(function() { 
    var node = $("#list"); 
    for (i = 1; i <= 100; i++) { 
     node.append("<div>Item :" + i + "</div>"); 
    } 
    //alert(node.attr("scrollHeight")); 
    //alert(node.attr("scrollHeight")); 
    node.animate({ scrollTop: node.attr("scrollHeight") }, 500); 
}); 

ボディ:

<div id="list" class="scrollbox"></div> 
+0

node.outerHeight()とnode.innerHeight()( "px"の有無)は問題を解決していないようです。誰でも問題を再現できますか?私は2つのコンピュータ(XP:IE8、Vista:IE8)上で混在した結果を得ています。 –

答えて

1

はあなたのgettinの代わりにnode.outerHeight()を使用してみましたがscrollHeightの値は?

1

jQueryのinnerHeight()値を使用してみてください。値が 'px'である必要があります。

node.animate({ scrollTop: node.innerHeight() + 'px' }, 500); 
1

私もこの問題を抱えています。私はIE8の不具合のようです(互換モードは同じ動作をしません)。私の場合は、値を一度読み込んで「プライム」し、その結果を無視するだけです。その後の読み込みは正しいです。理想的ではないが、うまくいくようだ。

関連する問題