- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:リンク付バナーのランダム表示のづれを修正したい)
リンク付バナーのランダム表示のづれを修正したい
このQ&Aのポイント
- リンク付バナーのランダム表示において、指定した画像とリンクが途中でづれる問題が発生しています。
- ページ数と用意した画像とリンク先は23、表示は8です。すべて同じように記述された商品紹介ページです。
- ランダムに表示される画像からジャンプ先のページに行き、そのページ内の画像からまた別ページにジャンプを繰り返し確認したところ、途中で指定した画像とリンクにづれが出てきます。どなたか解決策をご存知の方がいらっしゃいましたら、お助けいただけないでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
No1です。 >すみませんお手数ですが、再度よろしくお願いいたします。 当たるも八卦が、当たっているように思いますけれど? Images.splice(k,1);でimagesの配列だけ削除しているので、Linkの配列の内容とindexがずれてしまうのでは? 想像するところ、そのコードの作者は、同じものを2回選択しないように使ったものを配列から削除しているのでしょうけれど… 同じロジックのままでいくなら、Linkも同様に削除してあげるか、あるいは array[ [image1, link1], [image2, link2] ・・・ ]; のような配列にしておいて、ずれないようにしておくとか。
その他の回答 (1)
- fujillin
- ベストアンサー率61% (1594/2576)
回答No.1
コードを省略してしまっていて、何をどうやっているのかさっぱり不明で 解りようもないのですけれど、エスパー的な超能力を発揮してみて… spliceで配列を取り除いているから、実行するたびにリンクと画像の対応関係がずれる可能性があるということでは? (0とか1あたりではずれにくいと思いますが、後ろの方は間違いなくいつでもずれているのではないでしょうか?) 超能力なので、当たるも八卦です。
お礼
ご回答ありがとうございました。また一から出直します・・・。
補足
すみませせん、はしおり過ぎてました。 <head>内の記述は以下のとおりです。 <script type="text/javascript"> var imgcount=23; var viewcount=8; var Images = new Array(); var Link = new Array(); Link[0]="f-00.htm"; Link[1]="f-01.htm";・・・ Images[0] = './../img/0.jpg'; Images[1] = './../img/1.jpg';・・・ function changeImage(){ for(i=0;i<viewcount;i++){ k = parseInt(Math.random() * Images.length); document.getElementById("a_"+i).innerHTML='<a href="'+Link[k]+'" target="_self"><img src="'+Images[k]+'"></a>'; Images.splice(k,1); } } </script> すみませんお手数ですが、再度よろしくお願いいたします。