1

$.load() 関数を介して DIV をロードしています。完了したら、 $('#my_div').scrollTop(0); を実行します。

機能し、コンテンツは最初の行から表示されますが、これが問題です。ユーザーが div コンテンツをスクロールできるようにするためにブラウザーから追加された左スクロールバーは移動せず、.scrollTop() の前の場所にとどまります。

したがって、ユーザーが手動で下にスクロールしてからデータの更新を要求すると、データが更新され、コンテンツが最初の行から表示されますが、スクロールバーは一番下にあるため、ユーザーがクリックするとコンテンツが下にスクロールされます一番下まで!

ブラウザに div を強制的に再描画させる方法や、スクロールバーを上にスクロールさせるために何かする方法はありますか?

編集 1: div 自体を dom から削除し、「読み込み中」のテキストを追加して、読み込みが完了した後に再度作成しようとしましたが、何も変わりません...

編集 2: ページの上部をスクロールしていません。モーダルです (Twitter ブートストラップを使用しています)。

編集3:これは私のモーダルです

<!-- Modal di verifica duplicati -->
<div id="fullDataModal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="fullDataModal" aria-hidden="true">
    <div class="modal-body">
        <i class="icon-spinner icon-spin"></i> 
    </div>
    <div class="modal-footer">
        <button class="btn" data-dismiss="modal" aria-hidden="true"><?php echo Yii::t('General','close'); ?></button>
    </div>
</div>

そして、これはJavaScriptコードです

        $("DIV#fullDataModal DIV.modal-body")
            .load ("'. $this->createUrl("view", array("ajax" => true, "id" => $model->id))  .'"+contact_id, function(){
                $("DIV.modal-body").scrollTop( 0 );
            });

注意してください: 誤ってこれが動作します!

$("DIV.modal-body").scrollTop( 1 );

なんで ?

4

2 に答える 2

2

これを試して

$(document).scrollTop($('#my_div').offset().top);
于 2013-06-17T08:43:32.150 に答える
1

scrollTop(1) 回避策に基づいて、次のように動作します。

$("#mydiv").scrollTop(1).scrollTop(0)
于 2016-06-10T22:35:07.660 に答える