3

http://twitter.github.com/bootstrap/javascript.html#modalsで説明されているように(Markupメソッドを使用し、デモモーダルウィンドウを開始点として使用して)、TwitterBootstrapフレームワークを使用してモーダルログインウィンドウを設定しています。)。複数のブラウザでうまく機能します(これは、そもそもBootstrapを使用する大きな理由の1つです)。

ただし、Operaでページをテストすると、モーダルウィンドウが機能しません。ページは本来のようにフェードアウトしますが、ウィンドウは表示されません。なんで?

使用:Bootstrap v2.0.4、Opera 12

4

2 に答える 2

7

これはBootstrapの既知のバグであり、修正が行われていると確信していますが、待つことができない、またはフレームワークのバージョンを変更することができない人のために、ここに素晴らしい修正があります:問題これは、モーダルウィンドウの一般的なマークアップで使用される「フェード」クラスによるものです。

<div id="myModal" class="modal hide fade in">

このfadeクラスは、モーダルウィンドウの表示/非表示に適したアニメーションを提供します。そしてそれは明らかにOpera12で壊れています。

クラスを削除するfadeと機能しますが、他のブラウザユーザーを奪う理由はないため、次の便利なJavascriptスニペットを利用できます。

<script type="text/javascript">
    $(document).ready(function()
    {
        if (navigator.appName == "Opera")
        {
            $('#myModal').removeClass('fade');
        }
    });
</script>

これにより、Operaのクラスは削除fadeされますが、他のブラウザでは保持されます。これにより、古いバージョンのユーザーを含め、Operaで完全に無効になることに注意してください。修正の範囲を狭めることに興味がある場合は、バージョンを確認するためにテストできますnavigator.userAgent(Opera 12のユーザーエージェントヘッダーはOpera/9.80 (Windows NT 6.1; WOW64; U; en) Presto/2.10.289 Version/12.00私のコンピューターにありますが、それは普遍的ではないので、文字列の最後にが存在12.00します。たぶん、勤勉で眠くない人がコメントにスープバージョンを追加することができます:)

于 2012-07-21T05:58:31.690 に答える
2

私はmodernizrと何かのようなものを使うことをお勧めし $('.no-csstransforms3d .fade').removeClass('fade'); ます

そのように、たとえばオペラリリースオペラ13の場合、上記のコードは機能しません:P

出来ました.no-csstransforms3d .modal.fade

于 2012-08-17T06:51:54.140 に答える