2

コードが不足していることをお詫びしますが、基本的に私は jqModal プラグインを使用しており、期待どおりにうまく機能していますが、それについての質問であり、誰かが私の問題を解決する方法について光を当ててくれることを望んでいました.

基本的に、私のポップアップはブラウザーの 100% の幅と高さですが、ブラウザーのスクロールバーは jqModal ではなく、元の Web ページの高さを反映しています。これを変更する方法についてのアイデアはありますか? ありがとう!

4

2 に答える 2

2

ダイアログを開くときにスクロール位置を変更すると、問題が解決します

$('dailog-div').dialog(
    autoOpen: false,

        open: function () {
            var scrollPosition = [self.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft, self.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop];
            var html = jQuery('html'); // it would make more sense to apply this to body, but IE7 won't have that       
            html.data('scroll-position', scrollPosition);
            html.data('previous-overflow', html.css('overflow'));
            html.css('overflow', 'hidden');
            window.scrollTo(scrollPosition[0], scrollPosition[1]);
        },
        close: function () {
            var html = jQuery('html');
            var scrollPosition = html.data('scroll-position');
            html.css('overflow', html.data('previous-overflow'));
            window.scrollTo(scrollPosition[0], scrollPosition[1]);
            $(this).dialog('destroy').remove();

        }

    }).dialog('open');  
于 2012-09-12T11:39:41.097 に答える
1

ご意見ありがとうございます Murali ですが、別の方法を見つけました。基本的に、ポップアップをトリガーするときに本文のスクロールバーを非表示にしてから、スクロールバーをポップアップ div に追加することにしました。ポップアップを閉じると、ボディ スクロールバーが再適用されます。私の質問を見て答えてくれてありがとう。:)

于 2012-09-12T14:35:00.777 に答える