13

私はIE8、7、6でrotate(xdeg)機能を使用しようとしばらく苦労してきましたが、このためにしばらくグーグルでcssSandpaperを見つけましたが、4つの異なるスクリプトをロードする必要があるのでそれだけをやりたいですこのimに必要な場合は、modernizrimを使用して次のようなことを試みます。

<head>

        <link rel="stylesheet" href="stilos/estilo.css" />
        <script src="scripts/modernizr.custom.19387.js"></script>
        <script src="scripts/jquery-1.8.1.js"></script>
        <script src="scripts/misfallbacks.js"></script>
</head>

<body>
    <div id="acerca"><a href="#">Acerca de mi</a></div>
</body>

私のcssファイル(estilo.css):

#acerca{
    -webkit-transform: rotate(90deg);
    -moz-transform: rotate(90deg);
    -o-transform: rotate(90deg);
    -ms-transform:rotate(90deg);
    -sand-transform:rotate(90deg);
    position: relative;
    top: -233px;
    left: 462px;
    width: 123px;
    height: 23px;
    z-index:100;
}

私のjsファイル(misfallbacks.js)

Modernizr.load({
        test:Modernizr.csstransforms,
        nope:['transformie/EventHelpers.js/','transformie/cssQuery-p.js','transformie/sylvester.js','transformie/cssSandpaper.js']

    );//Fin de monernizr on load 

サファリ、クローム、オペラ、Firefox、IE9でうまく機能しますが、IE8またはIE7で
SCRIPT5007: Unable to get value of the property 'addEventListener': object is null or undefined EventHelpers.js, line 49 character 9
試してみると、コンソールで次のエラーが発生します。console.logを追加して、何が起こっているのかを調べて、ここでその行に移動しました。それは(EvenHelpers.js):

me.addEvent = function(obj, evType, fn){
       console.log(obj);//I've added this to try to figure out what is going on
        if (obj.addEventListener) {........//here is the error

次の実行で、コンソールをもう一度チェックしました。これLOG: nullはjavascriptの専門家ではないので、何が起こっているのかわかりませんが、別のことを試して、次のようなスクリプトタグを使用してcssSandPaperを追加しました。

<head>

    <link rel="stylesheet" href="stilos/estilo.css" />

    <script src="scripts/modernizr.custom.19387.js"></script>
    <script src="scripts/jquery-1.8.1.js"></script>
    <!--<script src="scripts/misfallbacks.js"></script>-->  
    <script src="transformie/EventHelpers.js"></script>
    <script src="transformie/cssQuery-p.js"></script>
    <script src="transformie/sylvester.js"></script>
    <script src="transformie/cssSandpaper.js"></script>
 </head>

驚いたことに、これは魅力のように機能しました。このように、IE7とIE8でも回転機能があり、コンソールはこれをLOG:[object HTMLScriptElement]と言いますが、この方法を使用すると、次の場合でも常にこれら4つのスクリプトが読み込まれることに注意してください。それらは必要ではなく、それはmiの目標ではありませんが、modernizrとjavacriptから始めて研ぎ澄まされているので、D:で何が起こっているのかわかりません。また、nope:['']を使用してスクリプトをロードすると、modernizrが機能しません。 。誰かがこれを解決する方法を知っていますか?...私の最初の言語ではなく私の英語でごめんなさい

編集:私はこのオブジェクトHTMLScriptElementについて少し調査し、スクリプトタグを参照すると仮定します。nopeでjsファイルをロードすると、modernizrから何かが変更され、スクリプトタグ内にロードされなくなったため、このオブジェクトはnullになります。 ...しかし、私はまだ同じ問題にあります...どうすればこれを解決できますか?:/

jsFiddleテストModernizr

Modernizrを使用しないjsFiddleテスト

回答:IE 9を使用してサンドペーパースクリプトをロードすると、作業が完了しました。

4

3 に答える 3

4

私はこれを別のより簡単なアプローチで解決しようとしました。それは私のために働きました、そして私はそれがあなたのためにも働くことを望みます。

IE9.JS(IE<9ブラウザーをIE9+標準に準拠するように動作させるjs)を含めました。このリンクにアクセスして、その方法を知ることができます。 http://code.google.com/p/ie7-js/

estilo.css次に、CSSを次のように少し変更しました。#acercaスタイル定義に次のスタイルを追加します。

filter:'progid:DXImageTransform.Microsoft.BasicImage(rotation=1)';

機能した。唯一の問題は、この種の変換が-ms-transformやその他の標準的なWeb変換ほど読みにくいことです。

于 2012-11-21T06:10:11.840 に答える
0

initわかりました、あなたは私を30分ほどこの場所に置いて購入します。関数行445のEventHelpers.jsにバグがあり、cc_onステートメントがあるので、つまり、それを読み取るだけです。

現在、実行時にスクリプトタグを作成しますが、タグは作成されていないため、nullに等しくなります。そしてコードは壊れています!

EventHelpers.jsを変更し、問題を修正しました。元のコードは、スクリプトタグをdocument.write 変更してスクリプトタグを記述します。document.createElementこれは、コンスローでバグが発生しないようです。

jsfiddle: http: //jsfiddle.net/5xdDG/3/

jsfiddleでは回転していないので、ie7または6でも実際にdivを回転させる必要がありますか?

申し訳ありませんが、英語は私の母国語ではありません;)

于 2012-10-09T22:57:52.217 に答える
0

1つのスクリプトを次々にロードする必要があるようです。

このスクリプトを試してください:

if (!Modernizr.csstransforms){
    Modernizr.load({
        load: 'transformie/EventHelpers.js',
        complete: function () {
            console.log("loaded EventHelpers");

            Modernizr.load({
                load: 'transformie/cssQuery-p.js',
                complete: function () {
                    console.log("loaded cssQuery");
                    Modernizr.load({
                        load: 'transformie/sylvester.js',
                        complete: function () {
                            console.log("loaded sylvester");

                            Modernizr.load({
                                load: 'transformie/cssSandpaper.js',
                                complete: function () {
                                    console.log("loaded cssSandpaper");
                                }
                            });

                        }
                    });
                }
            });

        }
    });

};
于 2012-10-15T17:36:21.000 に答える