Home > jQuery > [jQuery]サムネイルクリックで画像変更(+effect)

[jQuery]サムネイルクリックで画像変更(+effect)

前にmootools1.2で作ったのと似たものをjQueryでも書いたので晒します。
このスクリプトは画像切り替えだけです。

動作にはjQuery1.2.6が必要です。

HTML

HTML:
  1. <div id="change_image">
  2.      <div id="view">
  3.      <p id="myImg"><img src="01.jpg" alt="Sample Image" width="320" height="400"/></p>
  4.      </div>
  5.     <ul id="thumbs">
  6.         <li><img src="01_thumb.jpg" alt="Sample Image01" width="80" height="100" /></li>
  7.         <li><img src="02_thumb.jpg" alt="Sample Image02" width="100" height="80" /></li>
  8.         <li><img src="03_thumb.jpg" alt="Sample Image03" width="80" height="100" /></li>
  9.         <li><img src="04_thumb.jpg" alt="Sample Image04" width="100" height="80" /></li>
  10.     </ul>
  11.   </div>
  12. </div>

やってることはmootoolsの方とほぼ同じ。
サムネイルサイズに縮小倍率かけて拡大画像のサイズを設定してるので、比率違うのが混じるとサイズがおかしくなります。

javascript

JavaScript:
  1. $(document).ready(function (){
  2.                                     
  3.     if($('#change_image')){
  4.        
  5.         var mag = 4; //imgsize magnification
  6.         var regrep = "_thumb"; //   Replace name of thumbnail images
  7.        
  8.         $('ul#thumbs img').each(function(i){
  9.             var myhref = $(this).attr('src').replace(regrep,"");
  10.             var myalt = $(this).attr('alt');
  11.             var myheight = $(this).height()*mag;
  12.             var mywidth = $(this).width()*mag;
  13.             var imgs = $("<img></img>").attr({
  14.                   'src': myhref,
  15.                   'title': myalt,
  16.                   'class': 'change',
  17.                   'alt': myalt,
  18.                   'id': 'view-'+i,
  19.                  'height':myheight,
  20.                   'width':mywidth
  21.             });
  22.             imgs.css({
  23.                 position:'absolute',
  24.                 top:'0',
  25.                 left:'0'
  26.             });
  27.             imgs.hide();
  28.             $('#view').append(imgs);
  29.             $(this).click(function(){
  30.                 $('#view').css({
  31.                     'width': mywidth,
  32.                     'height': myheight
  33.                 });
  34.                 $('#view img').hide();
  35.                 $('#view-'+i).fadeIn();
  36.             });
  37.         });
  38.     }
  39. });

ダウンロード»Image change script02

このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをChoixに追加このエントリをnewsingに追加

Comments:6

tan_go238 10-01-14 (木) 13:44

すみません、試してみたところIE6~8では動作しませんでした。
何か分かるようであれば教えてもらえないでしょうか?

tan_go238 10-01-14 (木) 14:07

ごめんなさい。自己解決しました。
「var imgs =」の行から「$(’#view’).append(imgs);」の行までの間を以下のものに書き換えてIEで動作確認しました。

var imgs = “”;
$(’#view’).append(imgs);
$(’#view-’+i).hide();

tan_go238 10-01-15 (金) 8:13

何度もすみません。imgs以降にHTMLタグいれてたので消えてますね。。
var imgs = “&lt;img src=’”+myhref+”‘ title=’”+myalt+”‘ alt=’”+myalt+”‘ class=’change’ id=’view-”+i+”‘ height=’”+myheight+”‘ width=’”+mywidth+”‘ style=’position:absolute; top:0; left:0;’ /&gt;”;

Tenderfeel 10-01-18 (月) 18:11

ご指摘ありがとうございます。
おそらく、オブジェクトキー class がクォートで囲ってない為だと思われます。

class: ‘change’, → ’class’ : ‘change’

念のためすべてのキーをコメントアウトした方がいいかもしれません。(修正しました)

sasakimiwa 11-10-28 (金) 15:14

IE6,7,8で動くにはどうしたらいいでしょうか?今すぐ修正したいのですが、大変困っています。何卒よろしくお願いいたします。

Tenderfeel 11-10-29 (土) 0:48

sasakimiwa さん>
IEで動きませんか?だとしたら多分CSSの問題だと思うのでCSSを見直してみてください。

Comment Form
Remember personal info

Trackbacks:0

Trackback URL for this entry
http://tenderfeel.xsrv.jp/jquery/291/trackback/
Listed below are links to weblogs that reference
[jQuery]サムネイルクリックで画像変更(+effect) from WebTecNote

Home > jQuery > [jQuery]サムネイルクリックで画像変更(+effect)

最近の投稿
最近の修正
Tag Cloud
おすすめサーバー・他
メタ情報

Return to page top