• 締切済み

jQueryを使った画像の切り替え方法を教えてください

[文字サイズ大][文字サイズ中][文字サイズ小] などのボタン画像を押したら、 フォントサイズを変更すると共に、 ボタンが押された状態の画像に切り替えたいのですが、 それをjQueryを使って実行する方法を教えてください。 http://www.lllcolor.com/web/jquery/29.html ↑フォントサイズ変更のスクリプトはこのページのものを拝借しました。 http://weboook.blog22.fc2.com/blog-entry-6.html ↑画像切り替えはこのようなシンプルなものにしたいです。 jQuery版を探したのですが、高機能なものは見つかるのですが シンプルでなおかつ自分で組み込めそうなものが見当たらなかったので…。 ★HTMLは単純にこんな感じです <a href="#" class="sizeL"><img src="img/fontL.gif"></a> <a href="#" class="sizeM"><img src="img/fontM.gif"></a> <a href="#" class="sizeS"><img src="img/fontS.gif"></a>

みんなの回答

  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.1

文字サイズ変更+ボタン画像の変更で。 選択中なボタンの画像ファイル名は ~on と仮定してます。 <script type="text/javascript"> $(function(){ $(".size_change img").click(function(e){ var evt = e||window.event; var IMG = evt.srcElement||evt.target; $("body").removeAttr("class"); if(IMG.src.match(/fontL/)){ $("body").addClass("fontL"); $(".size_change img")[0].src = 'img/fontS.gif'; $(".size_change img")[1].src = 'img/fontM.gif'; $(".size_change img")[2].src = 'img/fontLon.gif'; } else if(IMG.src.match(/fontS/)){ $("body").addClass("fontS"); $(".size_change img")[0].src = 'img/fontSon.gif'; $(".size_change img")[1].src = 'img/fontM.gif'; $(".size_change img")[2].src = 'img/fontL.gif'; } else { $("body").addClass("fontM"); $(".size_change img")[0].src = 'img/fontS.gif'; $(".size_change img")[1].src = 'img/fontMon.gif'; $(".size_change img")[2].src = 'img/fontL.gif'; } }); }); </script> HTML部分(ulじゃなくてもいいけど、何か3つのimgを囲う要素が要る) <ul class="size_change"> <li><img src="img/fontS.gif"></li> <li><img src="img/fontMon.gif"></li> <li><img src="img/fontL.gif"></li> </ul>

関連するQ&A

  • jQueryを使ってある画像を別の画像に置き換えたい。

    jQueryを使ってある画像を別の画像に置き換えたい。 jQueryを使って、<body class="info">の時にだけ <ul id="global-nav">の中の画像「info.gif」を「info_on.gif」に 置き換えるということをしたいです。 <body class="info"> <ul id="global-nav"> <li><img src="info.gif" /></li> <li><img src="about.gif" /></li> </ul> </body> ↓↓↓ <body class="info"> <ul id="global-nav"> <li><img src="info_on.gif" /></li> <li><img src="about.gif" /></li> </ul> </body> どのように記述をしてやるとうまくいきますでしょうか。 色々試しているのですがうまくいきません。 よろしくお願いします。

  • 初心者です jQueryのマウスオーバーについて

    jQueryを使った画像を使ったメニューを作成しています。 <ul class="drop2">をマウスオーバーしたときに親の位置にある画像1.gifが画像1_o.gifに 切り替わるようにしたいと思っています。 調べながら作ってみたのですが、画像の切替がうまくいきません。 parentを使わずに画像1.gifをdivで囲って指定すれば切り替わったのですが、2つ以上メニューを 作ると、他のulにマウスオーバーしたときも切り替わってしまいます。 ご教授して頂けると嬉しいです。 よろしくお願いいたします。 ■スクリプト部分 jQuery(function ($) { $('ul.drop2').mouseover(function () { // console.log('mouseover'); デバック用 var onSrc = $(this).parent('ul.drop1 a img').attr('src').replace('.gif', '_o.gif'); $(this).parent('ul.drop1 a img').attr('src', onSrc); }); $('ul.drop2').mouseout(function () { var onSrc =$(this).parent('ul.drop1 a img').attr('src').replace('_o.gif', '.gif'); $(this).parent('ul.drop1 a img').attr('src', onSrc); }); }); ■html部分 <ul class="drop1"> <li><a href="/"><img src="画像1.gif" alt="HOME" /></a> <ul class="drop2"> <li><a href="#"><img src="画像1-1.gif" alt="HOME" /></a></li> <li><a href="#"><img src="画像1-2.gif" alt="HOME" /></a></li> </ul> </li> </ul>

  • 外部ファイルにした時の引継ぎについて…

    jQueryに関するJavaScriptに関する質問です。 ■以下のサイトで文字の大きさの変更についてのスクリプトがあり、自サイトに取り入れようと試みました。 ▼ http://www.lllcolor.com/jQuery/demo/demo01b.html 該当ページにてjavascriptに関する記述を直接入力した場合には問題なく動作するのですが、少々スクリプトが長いのもあり外部ファイルにしようとした場合に動作が行えません。 何か書き足さなければならないものがあるのでしょうか? <HRAD>内には以下のタグが記入されております。 <SCRIPT type="text/javascript" src="jquery.js"></SCRIPT> <SCRIPT type="text/javascript" src="common.js"></SCRIPT> ※common.jsは該当スクリプトを外部ファイルにした時の名称です。 ■ページ内の文字を変換する部分には、以下の記述があります。 <a href="#" class="sizeL"><IMG src="img/common/font_l.gif" width="20" height="20" border="0"></a> <a href="#" class="sizeM"><IMG src="img/common/font_m.gif" width="20" height="20" border="0"></a> <a href="#" class="sizeS"><IMG src="img/common/font_s.gif" width="20" height="20" border="0"></a> JavaScriptに関しては殆ど初心者です。 自身では色々なサイトを閲覧し、試行錯誤でスクリプトの先頭にに、$(function fontsize(){ と書き足し、ページ内の記述に<a href="#" class="sizeL" id="fontsize"> としてみたりと訳の分からない事に挑戦してみましたが一向に無駄でした(泣) どなたか、ご教授を頂ければ幸いです。 宜しくお願いします。

  • jqueryでの画像表示について

    どなたか教えて頂ければ幸いです。 画像のプリロードをするためjqueryを書いているのですが、 うまくいかず助けて頂きたくまいりました。 <div id="slideshow" class="clearfix"> <ul class="slider clearfix"> <li><a href="#"><img src="img/dress1.jpg" alt="" /></a></li> <li><a href="#"><img src="img/dress2.jpg" alt="" /></a></li> <li><a href="#"><img src="img/dress3.jpg" alt="" /></a></li> <li><a href="#"><img src="img/dress4.jpg" alt="" /></a></li> <li><a href="#"><img src="img/dress5.jpg" alt="" /></a></li> <li><a href="#"><img src="img/dress6.jpg" alt="" /></a></li> <li><a href="#"><img src="img/dress7.jpg" alt="" /></a></li> <li><a href="#"><img src="img/dress8.jpg" alt="" /></a></li> <li><a href="#"><img src="img/dress9.jpg" alt="" /></a></li> </ul> </div> $('#slideshow .slider li').hide();//ページ上の画像を隠す var i = 0; var c = 0; $(window).bind("load", function() { var c = setInterval(showImg() , 500); }); function showImg() { var imgLength = $('#slideshow .slider li').length; if (i >= imgLength) { clearInterval(c); } $('#slideshow .slider li:hidden').eq(0).fadeIn(500); i++; } 上記のように書いたのですが、ループしてくれません。 i++がきいてないように思います。 一枚ずつ表示していき、非表示の最初のliにフェイドインさせるようにしています。 すみませんが教えて頂ければ幸いです。 宜しくお願い致します。

  • jqueryのloadで読み込んだページ内でthickboxで画像を表示する方法

    画像表示処理方法で教えて頂ければと思います。 テスト用に2つのファイル(index.html, test.html)を用意しました。 index.htmlで thickboxを使用して画像をクリックすると希望通り (画像がアップ表示)の動作をします。 しかしindex.htmlのloadで test.html読み込んだ時の画像部分が、 target="_self"で押したときの動作になってしまいます。 解決方法、よろしくお願いします。 -----index.html----- <html> <head> <link href="thickbox.css" type="text/css" rel="stylesheet" /> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="thickbox.js"></script> <script type="text/javascript"> <!-- function init(){ $("#Test").load("test.html"); } // --> </script> </head> <body onload="init()"> <div id="Test"></div> <hr> (2)<a href="test.gif" title="" class="thickbox"><img alt="" src="test.gif" /></a> </body> </html> -----test.html----- (1)<a href="test.gif" title="" class="thickbox"><img alt="" src="test.gif" /></a>

  • jQuery 記述方法

    今、webサイトを作っていてjQueryを使用しようとしています。 しかし、うまくできません。外部にjavascriptファイルを置いています。 やりたいことは、ナビゲーションのロールオーバーです。 javascriptは初心者なのでどこが間違っているまたは足りないのかわかりません。以下に必要だと思うものを記述しますので分かる方がおりましたら教えてください。 javascriptファイルとjquery-1.6.4.min.jsはhtmlと同フォルダ内にあります。またimgフォルダ内に画像と拡張子の前に_onを付けた画像を入れています。 HTML <head> <script type="text/javascript" src="./jquery-1.6.4.min.js"></script> <script type="text/javascript" src="park.js"></script> </head> <body> <p><a href="index.html"> <img alt="top" height="50" class="navi" src="img/top.gif" width="100" /></a></p> </body> javascript $(function(){ $ ("img.navi").mouseover(function(){ $(this).attr("src",$(this).attr("src") .replace(/^(.+)(¥.{a-z]+)$/,"$1_on$2")); }).mouseout(function(){ $(this).attr("src",$(this).attr("src") .replace(/^(.+)_on(¥.{a-z]+)$/,"$1$2")); }).each(function(){ $("<img>").attr("src",$(this).attr("src") .replace(/^(.+)(¥.{a-z]+)$/,"$1_on$2")); }); ]); です。 よろしくお願いします。

  • jQueryで画像にリンクを張りたい

    HTMLページに <img src="1.jpg" width="50" height="50" id="tes"> というタグがあるのですが、 ページが読み込まれたときに、 そのタグにaタグをつけて <a href="hoge.html" target="_blank"><img src="1.jpg" width="50" height="50" id="tes"></a> とリンクを張りたいのですが以下のような スクリプトを書いてみたのですが、 できません。 <script type="text/javascript"> $(function(){ $('<img />').append($('<a />',{ href:"hoge.html", target:"_blank" }) ) }); </script> jQueryがよくわかっていないのでめちゃくちゃなのだと思いますが、 そもそもこのように画像にaタグをつけることは可能なのでしょうか。 jQueryのバージョンは1.2.6を使っていますが、 新しいバージョンでも構いません。 よろしくお願いします。

  • 画像をそのままの大きさで新規窓に切り出したい

    全て必ず同じ大きさ(100x100px)で、同じような柄の画像が複数あります。 <a href="1.gif"><img src="1.gif" alt="画像1"></a> <a href="2.gif"><img src="2.gif" alt="画像2"></a> <a href="3.gif"><img src="3.gif" alt="画像3"></a> それぞれをクリックすると、各画像を新規ウィンドウ(サブ窓)に切り出して表示し、 並べて比較できるようにするための効率よい方法についてご教示ください。 具体的にコードで示していただけると大変ありがたいです。 (サブ窓が複数あっても見分けがつくよう、サブ窓のタイトル=alt文字列にセットしたいです)

  • 画像をクリックして別の画像を変えたい

    ボタン画像をクリックしたときに同一ページ内にある画像が変わるようにしたいのですが、下のように描くと、ボタン画像(button.gif)自身が2.pngなどの画像に変わってしまいます。   <HTML> <HEAD> <TITLE>スワップイメージ</TITLE> <SCRIPT LANGUAGE="JavaScript"> <!-- function changeImage(imageUrl){ document.images[0].src = imageUrl; } // --> </SCRIPT> </HEAD> <BODY> <A HREF="#" onClick="changeImage('1.png')" ><IMG SRC="button.gif" border="0"></A> <A HREF="#" onClick="changeImage(2.png')" ><IMG SRC="button.gif" border="0"></A> <A HREF="#" onClick="changeImage(3.png')" ><IMG SRC="button.gif" border="0"></A> <TABLE BORDER="0"> <TR> <TD>ボタンを押すと下に画像が表示されます。</TD> </TR> <TR> <TD><IMG SRC="1.png"></TD> </TR> </TABLE> </BODY> </HTML> 原因を私なりに考えたところ、設定した変数mageUrlをボタンを表示させるために使った<img src="button.gif">で受け取ってしまっているというのはわかりました。(確認のため <IMG SRC="1.png"> を<A HREF>~</A>より上に持ってきたら思っていた動きになりました。)  けれどそれからどう修正したらもとの順番でもちゃんと動くのかがわかりません。過去ログの似た質問も拝見したのですが、今の自分では理解できませんでした‥。すみませんがよろしくお願いいたします。

  • jqueryの質問です

    jqueryで .tes01と.tes02は同じ番目をセットと考え .tes01 の画像をクリックした時に .tes02のリンクをクリックした状態にしたいと思っています。 .tes02のURLの取得は出来たのですがそれ以降が出来ないので教えてもらえますでしょうか。 $(function(){ $("ul.tes01 li").click(function(){ var tes01li = $(this).index(); var tes02li = $(".tes02 li").find("a").eq(tes01li).attr("href"); tes02li.click(); }); }); <ul class="tes01"> <li><img src="img01"></li> <li><img src="img02"></li> <li><img src="img03"></li> <li><img src="img04"></li> </ul> <ul class="tes02"> <li><a href="#link01">link01</a></li> <li><a href="#link02">link02</a></li> <li><a href="#link03">link03</a></li> <li><a href="#link04">link04</a></li> </ul>

専門家に質問してみよう