2

スクロール可能な div にいくつかのテキスト (div) を追加してから、下部を自動的にスクロールしようとしています。

何らかの理由で、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>
4

3 に答える 3

1

node.outerHeight()scrollHeightの値を取得する代わりにを使用してみましたか?

于 2009-05-23T01:30:42.183 に答える
1

jQueryのinnerHeight()値を使用してみてください。また、値には「px」が必要です。

node.animate({ scrollTop: node.innerHeight() + 'px' }, 500);
于 2009-05-23T01:37:03.763 に答える
1

私もこの問題を抱えています - 私には IE8 の欠陥のように思えます (互換モードは同じ動作を示しません)。私の場合、値を一度読み取って「プライミング」し、結果を無視するだけで、その後の読み取りは正しいです。理想的ではありませんが、うまく機能しているようです。

于 2010-06-30T18:34:04.200 に答える