HTML、CSS、JavaScriptなどWebに悩む人のネタ帳です。

画像ロールオーバーを実装するために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" />

よかったら使ってみてください。
しっかりテストはしていないので、自己責任でお願いします。。。

このエントリーをはてなブックマークに追加

Comment

Comment Form

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Monthly Archives

Search