$.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 );
なんで ?