- ベストアンサー
画像の表示方法について
ページが表示されるたびに画像を変更する方法が 『5・6年生にもわかるやさしいJavaScript』に紹介されていました。 URLはhttp://www.sky.sannet.ne.jp/masapine/java_top.htmlです。 これは、表示されるごとにランダムで変更する形式なのですが、 これを順番通りに画像を変更することは出来るのでしょうか。 具体的には、 <SCRIPT LANGUAGE="JavaScript"> <!-- simg=new Array(5); simg[0]="○○○.gif"; simg[1]="●●●.gif"; simg[2]="△△△.gif"; simg[3]="▲▲▲.gif"; simg[4]="□□□.gif"; Myimg=Math.floor(5*Math.random()); document.write("<center><img src='"+simg[Myimg]+"'></center>"); //--> </SCRIPT> の、Myimg=Math.floor(5*Math.random());の部分で 表示方法を決めていると思いました。 simg[ ]の数字の順番通りに表示するには、 どのようにすればいいのでしょうか。 初心者なので詳しいことが分かりませんが、 よろしくお願い致します。 また、この形式通りでなくても構いません。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
再表示で順に変えるのは簡単にはできません。なぜなら一回前の状態を知ることが出来ないからです。 やるとすると、専用のボタンを作って、そのボタンを押すと切り替わるというのであれば可能です。再表示すると最初の状態に戻ってしまいますが。 それにしても「5・6年生にもわかる・・・」と名打つ以上、きっと説明は易しいのでしょうけど、初心者向けだからと言って、間違ったことを教えるのは良くないので、そのページは感心しませんね。 var simg=new Array(5); simg[0]="○○○.gif"; simg[1]="●●●.gif"; simg[2]="△△△.gif"; simg[3]="▲▲▲.gif"; simg[4]="□□□.gif"; var Myimg=Math.floor(5*Math.random()); document.write("<center><img src='"+simg[Myimg]+"'></center>"); が正しいです。var を付けなくても一応動きますが、間違いです。 また、<center>タグは非推奨で、JavaScriptの勉強の時にあえて非推奨を押して使うというのも余計なことです。
その他の回答 (2)
- steel_gray
- ベストアンサー率66% (1052/1578)
順番? 利用者ごとなのか、サイトとしてなのかどっちでしょうか?? ケース1(利用者ごと、cookieを利用すればいいかな) Aさんがアクセス→#1の画像。 Bさんがアクセス→#1の画像。 Bさんがアクセス→#2の画像。 Bさんがアクセス→#3の画像。 Aさんがアクセス→#2の画像。 ケース2(サイトとして、Javascriptだけでは無理) Aさんがアクセス→#1の画像。 Bさんがアクセス→#2の画像。 Bさんがアクセス→#3の画像。 さんがアクセス→#4の画像。
補足
ご指摘いただきまして、ありがとう御座います。 私の考えでは、前者の利用者ごとに設定するというものです。 質問内容が不十分だったこと、お詫び申し上げます。
- auty
- ベストアンサー率58% (284/486)
・ 紹介されたページをそのまま利用してみました。 document.getElementById("gazou").innerHTML = img[imgNo]; を中心に勉強してみてください。 ------------------------------------------------------------ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis"> <META NAME="robots" CONTENT="noindex,nofollow"> <title>ページが表示されるたびに表示する画像がかわります(リンク付き) - 5・6年生にもわかるやさしいJavaScript</title> <STYLE TYPE="text/css"> <!-- body,tr,td {font-size:15px; color:#0099FF} --> </STYLE> <SCRIPT LANGUAGE="JavaScript"> <!-- img=new Array(5); img[0]="<a href='http://www.sky.sannet.ne.jp/masapine/java_gazou4-1.html'><img border='0' src='http://www.sky.sannet.ne.jp/masapine/images/icons1.gif' width='32' height='32'></a>"; img[1]="<a href='http://www.sky.sannet.ne.jp/masapine/java_gazou4-2.html'><img border='0' src='http://www.sky.sannet.ne.jp/masapine/images/icons2.gif' width='32' height='32'></a>"; img[2]="<a href='http://www.sky.sannet.ne.jp/masapine/java_gazou4-3.html'><img border='0' src='http://www.sky.sannet.ne.jp/masapine/images/icons3.gif' width='32' height='32'></a>"; img[3]="<a href='http://www.sky.sannet.ne.jp/masapine/java_gazou4-4.html'><img border='0' src='http://www.sky.sannet.ne.jp/masapine/images/icons5.gif' width='32' height='32'></a>"; img[4]="<a href='http://www.sky.sannet.ne.jp/masapine/java_gazou4-5.html'><img border='0' src='http://www.sky.sannet.ne.jp/masapine/images/icons8.gif' width='32' height='32'></a>"; // imgNo=Math.floor(5*Math.random()); var imgNo = 0; function update() { document.getElementById("gazou").innerHTML = img[imgNo]; imgNo++; if (img.length<=imgNo) imgNo=0; } window.onload = update; //--> </SCRIPT> </head> <body bgcolor="#F0F8FF"> <div align="center"> <center> <table border="0" cellpadding="0" cellspacing="0" width="100%" height="100%"> <tr> <td align="center" height="20">表示の例</td> </tr> <tr> <td align="center" height="120"> <!-- 表示の例テーブル↓ --> <div align="center"> <table border="0" cellspacing="0" bgcolor="#6699FF"> <tr> <td align="center"> <table border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" width="350" height="100"> <tr> <td id="gazou" align="center"> </td> </tr> </table> </td> </tr> </table> </div> <!-- 表示の例テーブル↑ --> </td> </tr> <tr> <td align="center" height="30"><font color="#666666">↑画像をクリックするとリンクします↑</font></td> </tr> <tr> <td align="center" height="40"><FORM><INPUT type="button" value="順に表示ボタン" onClick="update()" title="このページを更新します" style="border-style:solid; border-width:1px; border-color:#6699FF; background:#FFFFFF; font-size:10pt; color:#666666; cursor:hand"></FORM></td> </tr> <tr> <td align="center" height="40"><FORM><INPUT type="button" value="CLOSE" onClick="window.close()" title="このウインドウを閉じます" style="border-style:solid; border-width:1px; border-color:#6699FF; background:#FFFFFF; font-size:10pt; color:#666666; cursor:hand"></FORM></td> </tr> </table> </center> </div> </body> </html>
お礼
ご回答いただきまして、ありがとう御座います。 はい、分かりました。 また、そのページのソースを確認していなかった自分に気付かされました。 これからも勉強を頑張ります。
お礼
ご回答いただきまして、ありがとう御座います。 再表示で順に変える方法が難しいことがよく分かりました。 また、ボタンを押すごとに画像が切り替わるというJavaScriptをご紹介いただいて、ありがとう御座います。 ボタン以外にも、画像をクリックするたびに画像が変わるものもありますね。 更には、varをつけた方が正しいことも教えていただけて、たいへん勉強になりました。