• 締切済み

Javascriptでリンク画像を1時間ごとにランダム表示

Javascriptで、以下のような条件のプログラムが必要です。 1.jpg~8.jpgまで8枚の画像があります。 8枚の画像は、それぞれ決まった別のページにリンクしています。 1.jpg →1.html 2.jpg →2.html ・ ・ 8.jpg→8.html 8枚の画像を4つのグループに分ける。 グループ1 1.jpg , 2.jpg グループ2 3.jpg , 4.jpg グループ3 5.jpg , 6.jpg グループ4 7.jpg , 8.jpg グループ1から4までを1時間ごとに切り替える。 1~4時まで→グループ1をランダム表示 5~12時まで→グループ2をランダム表示 13~18時まで→グループ3をランダム表示 19~0時まで→グループ4をランダム表示 1時間ごとにランダム表示ならなんとかできたのですが、 画像リンクがそれぞれ別であることをすっかり忘れていて、 行き詰まっています。 新しい別の方法を知りたいので、すみませんが うまくいかなかったソースは掲載していません。 お分かりになる方がおられましたら、 プログラムをお教えいただけないでしょうか? よろしくお願いします。

みんなの回答

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.2

>1時間ごとにランダム表示ならなんとかできたのですが、 そこまでできていれば、対象とするデータを時間によって入れ替えてあげるだけですむでしょう。 配列に、 var data = [ { time:[1, 4], image:['1.jpg, 1.html', '2.jpg, 2.html'] },  ・・・・ ]; みたいに定義しておくとか。 (扱いやすい形であればなんでもよい) 指定の1~8がそのままで良いのなら、定義しておかなくても、画像名やリンク先を index + '.jpg' とか index + '.html' みたいにして求めることも可能です。 >新しい別の方法を知りたいので、 現在の方法が不明なので、同じなのか別なのか判別できません。 すぐに思いつくのは。 ◇時間の判別方法 1)↑の例示のように、開始・終了の両方を抑えその間であることを判定 2)連続しているなら、両方でなくても、開始だけ比較すればよい 3)6時間毎に割り振るなら、時刻を6で割って求める ◇時間ごとのセット 1)setTimeoutやIntervalで定期的に時間をチェックする。 2)最初に時間をチェックして、次の時間の変わり目までを計算し、  それに合わせて間隔をセットし、時間を確認するようにする。  (誤差を吸収する仕組みが必要) 3)多少の時間誤差が合っても良いのなら、2)で最初にセットしたら、あとは  無条件に6時間毎に画像を変えるルーチンを動かす。(Dateは確認しない) ◇データの持ち方 1)↑の例示のようにセットにして定義しておく。 2)内容ごとに変数を変えて配列で定義。 3)ご提示のように機械的に計算可能な時刻、文字列である場合は  データ定義などせず、計算値で求めてしまう。 ぐらいかな。組み合わせ方で3^3になるので27通り?(…と言えるのか?) と思ったら、あれっ? >グループ1から4までを1時間ごとに切り替える 1~4のグループは時間指定があるから、切り替わらないでしょう。 同じグループ内で、画像を選択し直すのなら意味はわかるけれど、1グループに画像が2個しかないみたいなので、切り替えると言っても… (同じものの連続を許すか許さないかで大きく変わる) なので、↑の「6時間ごと」は1時間毎ということになるのかな?

回答No.1

>新しい別の方法 と、あるので、どう答えてよいのか困ります。でっ、マジ短く。 <p><a href="1.html" id="a"><img src="1.jpg" id="b" alt="*"></a></p> <script type="text/javascript"> j=+'711113333333355555577777'.charAt((new Date).getHours())+Math.random()*2|0 with(document)getElementById('a').href=j+'html',getElementById('b').src='./img/'+j+'.gif' </script>

関連するQ&A

  • javascriptで画像をランダム表示させたい

    javascriptで画像をランダム表示させたいと思い、下記ソースを記述しました。 下記ソースでは、画像をランダムに1枚ずつ表示するようになっています。 今回、1枚ずつではなく、50枚ある画像を10枚ずつランダムに表示させたいと思っています。下記ソースから修整するにはどのような考え方になるのか教えていただけませんか? 単純に、 "img/1.jpg", の部分を "img/1.jpg,img/2.jpg,img/3.jpg,img/4.jpg,img/5.jpg", としてみたのですが違うみたいですし、、。 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>20110720test</title> </head> <body> <script language="JavaScript"><!-- myImageCnt = 5; myImage = new Array( "img/1.jpg", "img/2.jpg", "img/3.jpg", "img/4.jpg", "img/5.jpg" ) myRnd = Math.floor(Math.random()*myImageCnt); document.write("<img src='",myImage[myRnd],"' border='0' >"); // --></script> </body> </html>

  • リンク画像をランダム表示して一定時間でランダムにリンク画像切り替えするには?

    「複数のリンク画像を一定時間で(各リンク先も)切り替えるには?」で画像表示を一定時間で切り替えることがわかりましたが、ページを開いたときにリンク画像がランダムで表示されその後、一定時間でランダムにリンク画像を切り替えをする場合、どうすればいいのでしょうか?よろしくお願いします。

  • リンク画像のランダム表示について

    はじめまして。 諸先輩方、ご教授いただければと思います。 現在、JavaScriptでのリンク画像のランダム表示を、コーティングしてます。 配列に値をセットする方法は、存じてるのですが、対象のリンク画像が数十件あるため、全て記述するのはスマートではないと思い、とあるフォルダに対象のリンク画像を格納(1~50.jpg)し、取得したランダム値をもとに画像を表示させる所までは実装できました。 その際に画像へリンクを貼る段階で詰まってしまいました。 何か良い方法はないでしょうか? 私の考えでは配列にリンク情報を格納し、取得したランダム値をもとに取得するのかなと思ってますが、取得後のリンク設定方法がわかりません。 また、リンク画像を表示時、ロールオーバー処理も行いたく、外部jsファイルにロールオーバー処理を記述しました。 IEでは、問題なく表示されてますが、他のブラウザではロールオーバーが出来ません。 これは、リンク画像のランダム表示時にロールオーバー処理を追記する必要があるのでしょうか?

  • javaScriptでリンク画像のランダム更新表示

    画像をランダム表示する方法はわかったのですが、 各画像にリンク設定したいのと、 各画像の大きさをCSSのwidthやhighのように調整する方法をご教授ください。 <html> <body> <script type="text/javascript"> <!-- var imgURL = ["./images/1.jpg", "./images/2.jpg", "./images/3.jpg"]; var n = Math.floor(Math.random() * imgURL.length); document.write('<img src="'+imgURL[n]+'">'); // --></script> </body> </html>

  • JavaScriptを使用せず画像をランダムに表示したい

    はじめまして。 私は、Php NukeというCMSを利用してサイトを運営しております。 Php Nukeでは、HTMLを利用してページを表示できるのですが、画像をランダムに表示させたいのですが、 JavaScriptは無効のようで、できません。 つきましては、JavaScriptなしでHTMLに書き込むような形で画像をランダムに表示させたいのです。(またその画像にリンクも貼れればと思います) 或いは、JavaScriptを有効にするように設定?変更ができても可です。 どなたかお知恵をお貸しいただけないでしょうか? よろしくお願いいたします。

  • ランダム表示画像にリンクマップを貼れますか?

    ページの上部に、ページが更新するたびに違う画像が 表示されるようにJavaScriptで記述をしているのですが、 その画像の数箇所に、別々のURLを貼りたいのです。 ランダム表示ではない通常の画像の場合、 それぞれの形に合わせてエリアを指定し、 リンクマップをすればいいと思うのですが、 ランダム表示をしている画像に対しては どうすれば良いのでしょうか? また、リンクを貼る部分をオンマウスオーバーするようにも したいのです。 このような事は可能なのでしょうか?

  • Javascriptでランダムに画像を表示させ、さらにリンクさせる

    当方、ホームページを作成していまして、 画像をランダムに表示させることはできたのですが、 さらにその画像をクリックにて違うページにリンクさせたいと考えております。 いろいろ検索してみたのですが、明確な回答が見つからなかったもので、、、 どなたかご回答いただけると、大変助かります。 どうぞよろしくお願いいたします。 現時点で、以下の様になっています。 (4枚の画像をランダム表示させ、リンク先は同じ場所を考えています) <script language="JavaScript"> <!-- ranimg = new Array(); ranimg[0]="0.gif"; ranimg[1]="1.gif"; ranimg[2]="2.gif"; ranimg[3]="3.gif"; xx = Math.floor(ranimg.length*Math.random()); ranimg = ranimg[Math.floor(xx)]; document.write('<img src="'+ ranimg +'">'); // --> </script>

  • ランダムに表示する画像にリンク

    javascriptで、リロードするたびにランダムに画像を 表示するようにしている(画像は合計5枚)のですが、 ランダムに表示するように用意している画像の一枚一枚に 各画像バラバラのリンク先を設定することというのは可能なのでしょうか? また、可能であるのならその方法をお教え願えませんでしょうか。 よろしくお願い申し上げます。

  • javascriptで画像のランダム表示設定

    いつもお世話になっております。 過去に類似した質問が挙げられてましたが、 解決に至らなかったので、 質問させて頂きます。 javascriptを使用して、 3枚の画像をランダム表示されるように設定したいと思っております。 できれば、更新毎に常に異なる画像が表示されるようにしたいです。 ちなみに全体に適用ではなく、特定のボックスのみです。 こんな感じで現在は指定しております。 <div class="section1"> <img src="photo/xxx.jpg" alt="xxx" /> </div> ここのimgをランダム表示にしたいのですが、 どうも上手くいきません。 <script language="javascript"> <!-- // ランダムに画像を表示する img = new Array(); // 画像のアドレス img[0] = "photo/xxx.jpg"; img[1] = "photo/yyy.jpg"; img[2] = "photo/zzz.jpg"; n = Math.floor(Math.random()*img.length); document.write("<IMG src='"+img[n]+"' border='0'>"); document.write("</A>"); //--> </script> をbody内に挿入したのですが、 ダメでした。 ご指導の程宜しくお願い致します。 ちなみに当方、プログラムを自力で記述する能力が無いので、 できれば、ソースを明示して頂けると大変助かります。

  • 画像をランダムに表示し、リンクもランダムにしたい

    下記の通りにしたら、ランダムに画像が表示され、 クリックすれば画像とペアになっているアドレス先に飛ぶことは出来たのですが そのときのリンク先をランダムにすることは出来ないでしょか? 例えば、img[2] の画像が表示された場合、jmp[2] ではなく 5つのアドレスの中からランダムにリンク先が決まる、 というようなことなんですが・・・。 // ランダムに画像を表示する jmp = new Array(); img = new Array(); // ジャンプ先のアドレス(数字は画像と対応) jmp[0] = "http://~"; jmp[1] = "http://~"; jmp[2] = "http://~"; jmp[3] = "http://~"; jmp[4] = "http://~"; // 画像のアドレス(数字はジャンプ先のアドレスと対応) img[0] = "img/img1.jpg"; img[1] = "img/img2.jpg"; img[2] = "img/img3.jpg"; img[3] = "img/img4.jpg"; img[4] = "img/img5.jpg"; n = Math.floor(Math.random()*jmp.length); document.write("<a href='"+jmp[n]+"' target='_blank'>"); document.write("<img src='"+img[n]+"' border='0'>"); document.write("</a>");

専門家に質問してみよう