0

jQuery Colorbox プラグインを使用するページがあります。ページの私のJSは次のとおりです。

<script type="text/javascript">
    $(document).ready(function(){

    $(document).bind('cbox_open', function() {
        $("html").css("overflow", "hidden");
    });
    $(document).bind('cbox_closed', function() {
        $("html").css("overflow", "visible");
    });

        $(".iframe").colorbox({innerWidth:780, innerHeight:"90%", iframe:true});
     });
</script>

最初の 2 つのコード部分の目的は、開いたときにカラーボックスの背後にある親ページの垂直スクロール バーを無効にすることです。これは問題なく動作します。さらに、カラーボックスを閉じると、垂直バーが再表示されます。後者は、IE 7を除くすべてのブラウザーで機能します。

次の 2 つの理由から、コードにエラーが発生することなくコードに到達することがわかっています。

1 - "$(document).bind('cbox_closed', function() {" 内でアラートの動作をテストする

2 - 他のすべてのブラウザと IE 8+ のバージョンで動作します。

オーバーフロー値を「scroll」に変更しましたが、これにより不要な水平スクロールがページに追加されますが、これは望ましくありません。

オーバーフローまたは垂直スクロールを ie7 に表示させる別の方法はありますか?

4

2 に答える 2

1

私の経験では、これは html または body 要素の ie7 では機能しません。ドキュメント全体を a でラップして<div>に設定し、height:100%代わりwidth:100%にその div でオーバーフローを制御することをお勧めします。さらに、(これは好みの問題かもしれませんが)removeAttr('style')cssをに変更するのではなく、要素で使用してその状態を返す必要がありますoverflow:visible

補足として、この方法は ie7 と同じスクロールの問題を抱えている iPad の問題も解決します。

于 2012-05-17T19:02:11.697 に答える
0

注:

overflow:auto

:visible プロパティがこの場合に適用されない理由はわかりませんが (他のすべてのブラウザで機能するため)、トリックを実行しているようです。これを台無しにする原因はIE7について何ですか?

于 2012-05-17T19:06:39.920 に答える