• ベストアンサー

画像(リンク付)をランダム表示する方法

タイトルそのままです。 画像が10点あって、それぞれ別々のリンク先をもっています。この中から3点ランダムに選択して表示させるにはどうしたらよいのでしょうか? 画像ランダム表示1点のみ、ならわかります。 複数表示で、しかもリンク付、というのがわかりません。 具体的な例を言うと、広告バナーがランダム表示されますが、それの複数バージョンです。表示数は「3」で固定とします。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

広告バナーの画像とURLを外部JavaScriptファイルに しておくと管理しやすいですよ。 var AAA = new Array(); var i = 0; AAA[i++] = new Array( "http:\/\/aaa.co.jp/aaa.gif","http:\/\/aaa.co.jp/"); AAA[i++] = new Array( "http:\/\/bbb.co.jp/bbb.gif","http:\/\/bbb.co.jp/"); AAA[i++] = new Array( "http:\/\/ccc.co.jp/ccc.gif","http:\/\/ccc.co.jp/"); AAA[i++] = new Array( "http:\/\/ddd.co.jp/ddd.gif","http:\/\/ddd.co.jp/"); AAA[i++] = new Array( "http:\/\/eee.co.jp/eee.gif","http:\/\/eee.co.jp/"); AAA[i++] = new Array( "http:\/\/fff.co.jp/fff.gif","http:\/\/fff.co.jp/"); AAA[i++] = new Array( "http:\/\/ggg.co.jp/ggg.gif","http:\/\/ggg.co.jp/"); AAA[i++] = new Array( "http:\/\/hhh.co.jp/hhh.gif","http:\/\/hhh.co.jp/"); AAA[i++] = new Array( "http:\/\/iii.co.jp/iii.gif","http:\/\/iii.co.jp/"); AAA[i++] = new Array( "http:\/\/jjj.co.jp/jjj.gif","http:\/\/jjj.co.jp/"); 10件中3件を選ぶ方法はこんなのもあります。 for(i=0;i<3;i++){ xx = Math.floor(Math.random() * AAA.length); var Target = AAA[xx]; xx++; document.write("<A HREF=\"" + Target[1] + "\"><IMG SRC=\"" + Target[0] + "\">" + Target[1] + "</A>"); AAA = AAA.slice( 0,xx-1 ).concat(AAA.slice( xx )); }

その他の回答 (2)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

10の中から3選ぶ方法はこんな感じでいかが? あとはimageやリンクをつかってください。 <script language="javascript"> var a=new Array() for (var i=0;i<=9;i++){ a[i]=i; } for (var i=9;i>=1;i--){ var tmp1=Math.floor(Math.random() *(i+1)); var tmp2=a[i]; a[i]=a[tmp1]; a[tmp1]=tmp2; } for (var i=0;i<=9;i++){ document.write(a[i]+" "); } </script>

  • haruka47
  • ベストアンサー率50% (75/150)
回答No.1

phpが使えるサーバであれば、これはいかがでしょうか?

参考URL:
http://proto-net.ddo.jp/freesoft/randomdata.shtml
partita
質問者

お礼

早速のご回答ありがとうございます! PHPは使用できるのですが、今回はjavascriptでお願いします・・・。 わがまま言ってすみません。

partita
質問者

補足

補足です。 ひとつの画像に設定するリンクは、必ず一意です。 また、私が一番わからないのは、複数のものからランダムに「3つ」選ぶ、というところ。ひとつ、ならわかるんですが・・・。