1

私は Javascript に比較的慣れていませんが、どうにかしてこのコードを chrome、firefox、safari で動作させることができましたが、IE では正しく動作しません。最初にこのコードを見て、その後、何が機能していないように見えるかを説明します。

<!doctype html>
<html>
    <head>
        <meta charset="UTF-8">
        <link rel="stylesheet" type="text/css" href="http://www.domain.com/test/wtf.css" />
        <script type="text/javascript" src="/js/jquery-1.7.2.min.js"></script>
        <script type="text/javascript">
            $(function () {
                var transition = 'slow';
                var target1 = $('#flash1');
                var target2 = $('#flash2');
                var target3 = $('#box2');
                var target4 = $('#tble');
                var target5 = $('.links');
                var target6 = $('#wording');
                target1.delay(1000).fadeIn();
                target2.delay(2000).fadeIn();
                target3.delay(3000).fadeIn();
                target4.delay(4000).fadeIn();
                target5.delay(5000).fadeIn();
                target6.delay(6000).fadeIn();
            });
        </script>
        <script type="text/javascript">
            $(document).ready(function () {
                $("#this_is_button").click(function () {
                    $("#box2").hide();
                    $("#tble").hide();
                    $(".links").hide();
                    $("#second_pls").show();
                    $("#box2").css("background", "black");
                })
            });
        </script>
        <script type="text/javascript">
            $(document).ready(function () {
                $("#what_close").click(function () {
                    $("#second_pls").hide();
                    $("#tble").show();
                    $(".snap").show();
                    $(".links").show();
                    $("#box").css({
                        backgroundImage: "url('/test/img.jpg')",
                        backgroundSize: "800px"});
                    });
                });
        </script>
    </head>
    <body>
        <div id="box">
            <div id="box2" style="display:none"></div>
            <div id="wording" style="display:none">
                <label id="flash1" style="display:none">Hello</label>
                <label id="flash2" style="display:none">World</label>
            </div>
            <div id="tble" style="display:none">This is a table</div>
            <div id="second_pls" style="display:none">Hello Hello Hello, is this working? come on already?!!
                <input type="button" id="what_close" value="Close">
            </div>
            <div class="links" style="display:none">
                <input type="button" id="this_is_button" value="Sample">
            </div>
        </div>
    </body>
</html>

CSS:

 #box {
    background-color: #000000;
    height: 350px;
    margin-left: auto;
    margin-right: auto;
    width: 800px;
 }
 #box2 {
    background-image: url("/test/img.jpg");
    background-size: 800px;
    height: 550px;
    margin-left: auto;
    margin-right: auto;
    width: 800px;
    position: absolute;
}
#wording {
    position: relative;
    color: #999999;
    font-size: 15px;
    letter-spacing: 5px;
    margin-left: 20px;
    padding-top: 30px;     
    }
#tble {
        margin-top: 180px;
        position: absolute;
}
#second_pls {
        margin-left: 10px;
        margin-top: 310px;
        position: absolute;
}
.links {
        margin-left: 10px;
        margin-top: 310px;
        position: absolute;
}

では、IE でページをレンダリングしたときに機能していないように見える部分は何ですか? #flash1 と #flash2 を除いて、fadeIn、fadeOut、hide および show パーツが IE でレンダリングされていないようです。残りのフェードイン、フェードアウトは機能しません。なぜこれら2つが機能するのか、残りは機能しないのか理解できずに、私は髪を引き裂いています。

BrowserStack を使用しましたが、IE 8 を使用する Windows XP では、背景画像の適切なレンダリングを除いて、適切にレンダリングされるようです。しかし、IE 8 を使用する Windows 7 では、Windows XP と同じように動作しますが、IE 9 を使用すると現在の問題が発生します。

私は何を間違っていますか?

4

3 に答える 3

2

問題は間違った構文から発生しているようです:

 $("#box").css({
               backgroundImage: "url('/test/img.jpg')",
               backgroundSize: "800px", //<-- extra comma
 });

http://jsfiddle.net/bfcZd/3/

対。

http://jsfiddle.net/bfcZd/4/

于 2012-12-10T01:36:48.507 に答える
1

動作している 2 つの div の CSS 宣言を確認する必要があります。それらは position:relative であるか、他のプロパティが失敗している間に別の方法で (適切に) レンダリングする原因となっている他のプロパティを持っている可能性があると思われます。例の div に設定した CSS を提供していただけますか。トラブルシューティングを少し改善するのに役立ちますが、それを見ないで、これは私の予感です.

于 2012-12-10T01:32:02.343 に答える
0

このメタタグを<head></head>

<meta http-equiv="X-UA-Compatible" content="IE=8">

その後動作するはずです。

私はこのjsfiddleにそれを持っています:http://jsfiddle.net/Morlock0821/XtyWC/

于 2012-12-10T19:23:43.603 に答える