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" />
よかったら使ってみてください。
しっかりテストはしていないので、自己責任でお願いします。。。
コメントする