jQueryでオリジナル画像ロールオーバー処理を実装
画像ロールオーバーを実装するためにjavascriptを用いる例は多数存在しますし、私もよく利用します。今回、jQueryにも慣れてきたので、簡易版ではありますがjQueryでその機能を実装してみました。
jQueryのバージョンは1.3.2です。
function ROverImg(classname){ var prefix = '_o'; $("img").each(function(){ var src = $(this).attr("src"); if($(this).hasClass(classname) && src.indexOf(prefix + ".") == -1){ var size = src.length; var over = src.substring(0, size - 4) + prefix + src.substring(size - 4, size); $(this).attr("out", src); $(this).hover( function(){ $(this).attr("src", over); }, function(){ $(this).attr("src", $(this).attr("out")); } ); } }); }
簡単に説明すると、imgタグ全てに対してクラス名「classname」を指定した要素を探し出し、ロールオーバー画像をセットするという処理です。
例えば、この処理をクラス名「rover」を指定してオンロードで実行します。
$(document).ready(function(){ ROverImg("rover"); });
以下のようにしてimgタグにclass「rover」を指定することで、マウスオン時には「sample_o.jpg」、マウスオフ時には「sample.jpg」と画像を切り替えてくれます。
この場合、関数内でプレフィックスprefixを「_o」と指定してるので、事前に通常画像「sample.jpg」とオーバー時の画像「sample_o.jpg」を用意しておきます。
<img class="rover" src="sample.jpg" alt="サンプル" width="100" height="100" />
よかったら使ってみてください。
しっかりテストはしていないので、自己責任でお願いします。。。
コメントする