THE HAM MEDIA BLOG

jQuery自作:簡単な指定だけでテキストを画像と入れ替え(画像置換)ができる”jQuery ReplaceImg Plugin”

Clip to Evernote このエントリーをはてなブックマークに追加
カテゴリ:
jQuery plugin自作
タグ:
jquery
javascript
plugin
プラグイン
画像置換

画像置換が簡単にできるプラグイン

「画像置換が簡単にできないかなー」
なんて言われたことが過去にあったのを思い出した。
CSSでの設定を覚えたら簡単にできるのですが、
それよりも簡単に使えないかなーと考えていたら、
「あ、プラグインでいいじゃん!」
なんていいのか良くわからないまま昨日から構想はじめて、さっきようやく完成した。
いろいろなテストとか実験しながら作ったら時間かかった(汗)
でも作りというかスクリプトはものすごく簡単だったりする。

このプラグインを使えば、画像置換を簡単に行えると思う。
出来云々はおいといて、とりあえず紹介!

ReplaceImg Plugin

ダウンロードして使用してください。
リンク先を保存で保存できます。

ダウンロード:jquery.replaceImg-1.0.js

動作を確認したブラウザは
Firefox3、IE6、IE7、Safari3、Opera9.6、Chrome。

使い方

jQueryが無いと動かないので、ダウンロードしてきてください。
そして今回のプラグインもダウンロードしておく。

二つのjsを利用するために、head内に記述。

<script src="js/jquery.js" type="text/javascript"></script>  
<script src="js/jquery.replaceImg-1.0.js" type="text/javascript">
</script>  

テキストを画像と置換

単純にテキストをimgと入れ替える場合は、replaceImgを、
背景画像として指定したい場合はreplaceBgImgを使います。

■サンプルソース

$(function(){
	$('.replace').replaceImg('##.png');
	$('.replacebg').replaceBgImg('##.png',190,70);
});

適応させたい部分のセレクタを指定し、
且つ.replaceImg()で置換する画像を指定しておきます。
.replaceBgImgを指定する場合は、横幅と縦幅も指定します。

わかりやすくすると以下のようになります。

$(function(){
	//imgとして置換する場合
	$('セレクタ').replaceImg('画像URL');
	//cssのbackground-imageとして置換する場合
	$('セレクタ').replaceBgImg('画像URL' , 横幅 , 縦幅);
});

背景画像として置換する場合は必ず横・縦幅を指定してください。
入れ忘れると表示されません。

■サンプルHTML

<p class="replace">ダミー画像</p>
<p class="replacebg">ダミー画像</p>

■サンプルプレビュー

ダミー画像

ダミーテキスト

サンプルの上がimgで表示されていて、
下が背景画像として表示されています。

画像にリンクがある場合

リンクがある場合はアンカー(<a>)タグ部分を指定してください。
アンカータグを指定することで、画像表示部分がリンクになります。

■サンプルソース

$(function(){
	$('.replace').replaceImg('##.png');
	$('.replacebg').replaceBgImg('##.png',190,70);
});

■サンプルHTML

<p><a href="#" class="replace">ダミー画像</a></p>
<p><a href="#" class="replacebg">ダミー画像</a></p>

■サンプルプレビュー

ロールオーバーも簡単

デフォルトはclassにoverを加えることで
_onがついた画像をロールオーバー画像にできます。

■サンプルHTML

<p><a href="#" class="replace over">ダミー画像</a></p>
<p><a href="#" class="replacebg over">ダミー画像</a></p>

■サンプルプレビュー

ロールオーバー指定のカスタマイズ(上級)

デフォルトはロールオーバーの指定は、
class="over"で適応させ、imgの画像最後に_onのついた画像を
ロールオーバー画像に指定するようにしています。

それを変更する場合は下記のようにしてください。

$(function(){
	$('.replace').replaceImg('##.png',{
		rollover: '.hoge',
		postfix:'_over'
	});
	$('.replacebg').replaceBgImg('##.png',190,70,{
		rollover: '.hoge',
		postfix:'_over'
	});
});

rollover部分で、ロールオーバーしたいセレクタの指定、
postfixでロールオーバー画像の最後につく部分の変更ができます。

これは指定しなくても使用できるので、
面倒な人はこのカスタマイズをしないほうがいいです。
単純にロールオーバーしたい画像の最後に_onをつけておき、
ロールオーバーさせたい部分のclassにoverを指定してください。

リンクのタイトルを表示させたくない場合(上級)

デフォルト状態だと、テキストに入れていた文字がリンク部分のタイトルとなり、
マウスオーバーしたときに文字がポップアップされます。
それをしたくない場合は、imgTitle:falseを指定します。

$(function(){
	$('.replace').replaceImg('##.png',{
		imgTitle:false
	});
	$('.replacebg').replaceBgImg('##.png',190,70,{
		imgTitle:false
	});
});

使いどころ

いるのかわかりませんが、HTML上であまりimgを使いたいたくない
なんて人にはオススメのプラグインになるのかなーなんて思います。

使いどころというより、このプラグインのメリットは、
面倒なCSSの設定なしに、背景に画像を入れることができて、
なおかつロールオーバーも出来てしまう点で便利だと思います。

ダウンロード

Download:jquery.replaceImg-1.0.js

こんな人におすすめ

このプラグインは、以下のような人にオススメかと思います。

  • ・CSSでの画像の設定が良くわからない。面倒。
  • ・画像置換のロールオーバーの設定がわからないからできない。
  • ・画像置換のロールオーバーでちらつく。
  • ・CSSもJavaScriptも切った環境ではテキストを表示させたい。

CSS設定などができるような人はCSSの方が楽かもしれないですが、
CSSがわからないような人には使えるプラグインだと思います。

何かバグなどがあれば教えてください。

この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス: [必須入力]

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック

スクールサイトリニューアル
Excerpt: またまた久しぶりの記事エントリーとなりました。 早いものでもう師走突入。 スクー...
Weblog: JaGra DTP&Webスクール スタッフブログ
Tracked: 2009-12-01 18:25

トップに戻る