一番簡単な画像置換の方法-imageReplace.js-

【PR】初心者でも安心なレンタルサーバー。263円から使えます。
【PR】HP登録でSEO対策!アクセスアップにコチラ!

画像置換は設置がややこしく。
デメリット・メリットの切り分けが困難です。

そんなわけで一番簡単な画像置換の方法として、画像置換javascriptライブラリ-imageReplace.js-を作ってみました。

設定は簡単head要素内にimageReplace.jsを読み込むだけ。

<script type="text/javascript" src="./imageReplace.js"></script>

あとは、画像置換したい要素にclass属性に『imageReplace』と記述しスペースを空けて『置換する画像名』、『ロールオーバーする画像名』を記述します。

例えばこんな感じに。

<a class="imageReplace ajax_a.gif ajax_b.gif" href="/ajax/">Ajax</a>

『ロールオーバーする画像名』はロールオーバーの必要なければ入れなくても問題ないです。

画像までのパスが遠い場合はライブラリ内の14行目のImagesDirに画像までのパスを書いておけばclassはファイル名のみの記述で大丈夫です。

サンプル

これで画像置換について迷う心配はもうないです。

MITライセンスで配布しますのでどしどし使ってください。
バグとかもどんどんご指摘ください。

修正(2007/8/20)

修正(2007/3/2)

画像未指定がある場合のロールオーバーの挙動を修正しました。
ご指摘ありがとうございます。

画像置換エントリー

  1. 画像置換
  2. 画像置換でメニューを作る
  3. 画像置換に関する考え方
  4. BIR-もうひとつの画像置換
  5. 一番簡単な画像置換の方法-imageReplace.js-

関連エントリー

アルファ画像を扱うalphafilter.jsライブラリ
AjaxやJavaScriptのライブラリ

スポンサードリンク

«BIR-もうひとつの画像置換 | メイン | wordpressのタイトルを表示形式を変更»

このエントリーのトラックバックURL
http://blog.webcreativepark.net/cgi/mt/mt-bt.cgi/247
トラックバック内容
» text-indent:-9999pxはSEOのスパムになるのかと対策について from N-Brid - WEBクリエイティブ Labo.
懸念事項のような問題点については、ホームページをビジュアルなものとして制作しながら、SEO対策を施すということをすると必ず出てくる問題点だ。 ...
コメント

ファイル名は小文字だけに統一したほうがいいと思う…。

投稿者:Bar | 2007年2月22日 08:59

これは本当にすばらしいツールです。
いろいろとやろうとすると、cssでの表示が美しくなかったり、-9999pxなどとやると、罪悪感を感じていましたが、これらが一気に解決すると思うと、本当にこれは使える!!と実感できます。

このプログラムを実際に使用しましたが、ロールオーバーの画像(a)の後に、ロールオーバーが必要ない画像(b)が出てくると、(b)にマウスオーバーした際に、(a)に画像が入れ替わってしまう現象を確認しました。

ご報告までに。

投稿者:かわかわ | 2007年3月 2日 16:30

>Barさん

なんかそう言われると小文字のがいい気がしますね・・・

>かわかわさん

コメントありがとうございます。
あ、ホントですね。ロールオバーしてないところの挙動がおかしいです。
修正しときました。

ご指摘、感謝感謝です。

投稿者:西畑 | 2007年3月 2日 23:00

たびたび失礼いたします。
IE5、IE5.5以下ですと、うまく挙動しないんですね。

あれなくば、これなしですが・・・。

投稿者:かわかわ | 2007年3月23日 18:25

WEBでは、はじめまして。「Web標準の日々」喫煙室にて
突然声をかけさせて頂きました、新潟のつとむらです。

prototype.js無し版、素晴しいです。嬉しいです!!!

前VerのimageReplace.jsのおかげで大変助けて頂きました。
次のサイトで新Verも是非使用させて頂きたいと思います!

ちなみに、あの日は地震の影響で帰ることができませんでした。(^-^;

あの時は本当に突然ですみませんでした。
貴重なお話を聞かせて頂き、ありがとうございました!
また何かの機会がありましたら、宜しくお願いいたします。

投稿者:つとむら | 2007年9月17日 17:33

>つとむらさん

地震でかえれなかったんですね。。。
台風に地震といろいろ大変でしたね。

新Verもまたご意見いただけたらと。

投稿者:西畑 | 2007年9月24日 00:52

ナビゲーションのロールオーバーの仕方は悩んでます。
CSSで-9999emとか使った画像置換はあまりよくないらしく、
どうしても画像に置き換えたい時にどうしたものかと思っておりましたが、
imageReplace.jsを使うとjavascriptを有効にしていなくても関係ないんでしょうか?
どんなデメリットがあるか知りたいです。

最近はみんなどんな風に画像置換するのでしょうか?

javascriptもたくさん入れるとエラーが起こる可能性があるので、ちょっと恐々試してみます。

投稿者:ume | 2007年11月18日 23:51

>umeさん

コメントありがとうございます。

個人的な意見を言いますと、画像置換に完璧な手法は存在しません。それぞれにデメリットがあり、どのデメリットを許容できるかで選択の幅が狭まってくると思います。

CSSで-9999emの手法も画像がoffでCSSがonという非常にニッチな環境で、ちゃんと情報が閲覧できません。
ここを許容できればこの手法で問題ないと思います。事実、この手法が一番よく使われています。

imageReplace.jsは様々な環境で目的の文字情報は閲覧できるよう作成されています。JavaScriptライブラリですのでJavaScriptがOFFの環境では画像置換は置き換えませんが、要素内に記述されている文字などはちゃんと閲覧できます。
また、他のライブラリとのバッティングしないように設計されているので、相性の問題でエラーが出ることはありません。

こんな感じですね。参考になればと

投稿者:西畑一馬 | 2007年11月24日 13:02

いろいろとありがとうございます。
imageReplace.jsをナビゲーション横並び、ヘッダーの下
横サイドバーにも縦並びで入れたところ、表示が遅くなります。
一度テキストだけが表示されてから後から画像が表示される感じです。
あまりきれいではないのですが・・・・・
一つだけにした方がいいのでしょうか?

CSSと比べてみたら、CSSの方が表示が速いです。
CSSを切っているとレイアウトも崩れますので、ONを前提に考えておりますが、
どちらにするかこのあたり悩むところです。

Q&Aの効果的な見せ方もまた教えてくださいね。

投稿者:ume | 2008年1月31日 02:51

>umeさん

imageReplace.jsはすべてが読み込み終わってから表示されるので、どうしも表示が遅くなってしまいますね。

投稿者:西畑一馬 | 2008年2月 6日 21:47
コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承 認されるまではコメントは表示されません。そのときはしばらく待ってください。)


画像の中に見える文字を入力してください。