0

私はEric Martin の甘い 'simplemodal' jQuery pluginを使用しています。これは素晴らしく機能し、軽量な jQuery ベースのモーダル ダイアログ ソリューションを探している人にはお勧めです。

そうは言っても、モーダルとして表示する必要がある特に長いコンテンツがいくつかあります。デフォルトでは、コンテナー要素は「overflow:auto」を使用して、長すぎてブラウザー ウィンドウに収まらないコンテンツを処理します。これはほとんどの場合うまく機能しますが、この場合、ダイアログをフルハイトのままにして、ページの残りの部分と一緒にスクロールしたいと思います (「絶対」対「固定」に配置)。ソース内の任意のposition: 'fixed'参照をposition: 'absolute'に変更することで、これをかなり簡単に機能させることができますが、すべてのモーダルがこのように表示されることを意味するため、これは最悪です...

この作業を優雅に行う方法について考えている人はいますか?

4

5 に答える 5

1

その特定のdiv領域の実際のモーダル呼び出しにposition:absoluteを追加してみてください

以下のように

$( "#somebutton")。click(function(){

    $('#my-modal-content').modal({
        position:absolute
    });
});

私はあなたと同じ問題を抱えていましたが、ボタンや機能ごとに異なるサイズのボックスが必要でした。これが私が解決した方法です。幸運を!

于 2010-01-26T21:53:45.163 に答える
1

これが私がすることです:

jQuery('#MyModal').modal({
    //options
});
jQuery('#MyModal').parents('.simplemodal-container').css('position', 'absolute');
于 2011-09-20T13:47:30.380 に答える
0

ダイアログ自体にスクロールバーがあるだけです。

于 2010-01-26T21:54:53.390 に答える
0

ソースを特定のニーズに適合させることに悪影響はないようです...したがって、オプションオブジェクトを介してポジショニングとオーバーフローのプロパティを提供できるように、ソースを作り直すことをお勧めします。

于 2010-01-26T21:55:18.757 に答える
0

コードを大幅に変更する必要があります。特に IE (主に IE6) を扱うコードはそうです。

絶対位置に変更するだけで、特定のブラウザーでは最初は機能しますが、一部のブラウザーまたはページのサイズ変更 (任意のブラウザーで) は、固定位置に戻ります。

于 2010-02-13T16:30:14.533 に答える