TrackBackの数を見ても, googleの検索キーワードを見ても, みんな悩んでるんだなぁと感じるieでPNGを透けさせる方法. トップ画像の共有プロジェクト(トガキュー)向けにsampleを出しましたが, JavaScriptのdocument.write()を使って HTMLを生成するのってあんまり好きでないんですよね. (といいつつここのtopでは使ってますが) JavaScriptをオフにしてると何も表示されないし. (<noscript>を併用すればいいのですが)
ということで, 前別口でオマケとしてだしたのですが, 誰もこっちは参照してくれないieでPNGを透けさせるちょっと一般的な方法についてまとめてみました.
ieでPNGを透けさせるには, AlphaImageLoaderを使う必要があります(ie5.5以降のみ). このfilterは「指定した画像を上からかぶせる」フィルタです. すなわち, 「透明な画像」に「PNGをかぶせて」あげてれば, 所望の出力が得られるわけです. ただし, 「かぶせる」ことができるのはie5.5以降だけなので, それ以外のブラウザでは「透明な画像」ではなくて「PNG画像」のままにする必要があります.
ということで, AlphaImageLoaderが使える場合のみimgタグのsrcを「blank.gif」に変更して 「PNGをかぶせる」関数changeImage()を作ります.
blank.gifは透明なGIFファイルです. 適当に用意してください. findElement()は以下のような関数. 使い方は対象とするimgにidをつけます. widthとheightもあった方がいいかも.
あとは, onloadでchangeImage()を呼び出します
これで, JavaScriptをOFFにしたieやie5.0では透けませんが, PNG画像は表示されます.
