AJAX コンテンツをロードする Fancybox ダイアログがあります。ユーザーは「+」をクリックして内部に行を追加できます。行が増えると、ダイアログは画面サイズよりも大きくなります。スクロールバーが表示されますが、ダイアログを下にスクロールできず、上に戻り続けます。
これを修正するにはどうすればよいですか?
AJAX コンテンツをロードする Fancybox ダイアログがあります。ユーザーは「+」をクリックして内部に行を追加できます。行が増えると、ダイアログは画面サイズよりも大きくなります。スクロールバーが表示されますが、ダイアログを下にスクロールできず、上に戻り続けます。
これを修正するにはどうすればよいですか?
申し訳ありませんが、悪いです。今後の参考のために、ここに修正があります。
Fancyboxを動的に更新して再配置しようとしないでください。
$('#stuff').fancybox({
... stuff
onUpdate: function() {
$.fancybox.update();
$.fancybox.reposition();
}
});
最終的に、更新のたびに、Fancybox は中央に配置され、再配置されます。
でも!実際には、これを数ミリ秒ごとに実行しようとします。これにより、Fancybox がアクティブになるたびに Chrome のインスペクターがフリーズし、スクロールが失敗します (スクロールしようとしている間、サイズ/位置を更新しようとし続けて失敗します)。
サイズが手動で変更されると予想されるたびに更新してください。