1

AJAX コンテンツをロードする Fancybox ダイアログがあります。ユーザーは「+」をクリックして内部に行を追加できます。行が増えると、ダイアログは画面サイズよりも大きくなります。スクロールバーが表示されますが、ダイアログを下にスクロールできず、上に戻り続けます。

これを修正するにはどうすればよいですか?

4

1 に答える 1

0

申し訳ありませんが、悪いです。今後の参考のために、ここに修正があります。

Fancyboxを動的に更新して再配置しようとしないでください。

私が試したこと

$('#stuff').fancybox({
    ... stuff
    onUpdate: function() {
        $.fancybox.update();
        $.fancybox.reposition();
    }
});

最終的に、更新のたびに、Fancybox は中央に配置され、再配置されます。

でも!実際には、これを数ミリ秒ごとに実行しようとします。これにより、Fancybox がアクティブになるたびに Chrome のインスペクターがフリーズし、スクロールが失敗します (スクロールしようとしている間、サイズ/位置を更新しようとし続けて失敗します)。

正しい方法

サイズが手動で変更されると予想されるたびに更新してください。

  • ダイアログの内容を変更する場合 (AJAX の場合)
  • 内部エラーを表示するとき、または内部に新しい div を追加するとき
于 2013-04-24T15:21:13.650 に答える