透過pngをロールオーバーさせる

この2〜3日、透過pngを大量に使うデザインのコーディングを行っていましたが、その中で困ったのがIE6で透過pngがロールオーバーしてくれないこと。

様々なライブラリを試したけれどもやっぱりロールオーバーしません。ところが唯一ロールオーバーに対応していたのがユンサンが配布しているiepngfix.jsのバージョン1.4。マウスオーバーさせたいオブジェクトとロールオーバー画像を引数にしてhover関数をコールすると言う使い方をします。

僕の場合はjQueryを使うケースが多いので、外部JSに以下のように書き出して使ってます。

$(function()
{
     var lo_nav1 = document.getElementById('lo_nav1');
     IEPNGFIX.hover(lo_nav1, 'btn_hoge_on.png');
});

ちなみに通常透過pngを使う場合は専用のクラス

* html .iepngfix { behavior: expression(IEPNGFIX.fix(this)); }

のように作っていますが、ロールオーバーさせるオブジェクトにはこのクラスの記述はしません。通常だったら<img src="hoge.gif" class="iepngfix" />みたいな記述をするけれどもロールオーバーさせたい場合は<img src="hoge.gif" id="lo_nav1" />のようにIDの指定だけでオーケーです。クラスを記述してしまうとロールオーバーしたままになるので要注意です。