IE8だとfadeInが効かない。 | sola's note

sola's note

日ごろのメモを書いていきます。何か新しいものを作るために。

IE8だとfadeInが効かない。

jQueryにfadeIn(ふわっと表示する機能)
http://semooh.jp/jquery/api/effects/fadeIn/%5Bspeed%5D,+%5Bcallback%5D/
というものがあるのだけれど、
こいつがIE8だと効かない。(正確に言うと正常に動かない。)

例えば、こんな感じに書くと、

---ヘッダ---

<script type="text/javascript" src="./jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
    $("div.fuga", this).hide();
    $("div.hoge").hover(
        function(){
            $("div.fuga", this).fadeIn("normal");
             },
        function() {
            $("div.fuga", this).hide();
        }
    );
});
</script>

---ボディ---

<div class="hoge">
    <p class="top_hoge">hoge</p>
        <div class="fuga">
            fadeInさせるもの
        </div>
</div>

IE7とかChromeなら

<p class="top_hoge">hoge</p>

にカーソルを合わせれば、

<div class="fuga">
    fadeInさせるもの
</div>

がfadeInされる。
ところが、IE8だと、

ただ表示されるだけ。(ふわっとしない)

fadeInメソッドの引数(normalとか)が意味無くなっている。
そんな時、有効にさせたい場合の一つの方法として、
ブラウザを互換モードで動作させるというのがありました。

htmlのヘッダ部分に↓のmetaタグを追加すれば出来ます。
<meta http-equiv="X-UA-Compatible" content="IE=7">

参考:現在のサイトを解決する方法
http://msdn.microsoft.com/ja-jp/library/cc817570.aspx
↑Windows IE8→IE7の場合

今回はIE7モードで動かせば何とかなるケースでしたので、
互換モードでいきましたが、
ブラウザのバージョンが変わると、表示の違い等様々な弊害が出るので、
気を付けてやって下さい。