• ベストアンサー

テーブルもしくセルの背景をランダムにしたいがうまくいかない

テーブルの背景を表示のたびに変えたいと思っています。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=171099&rev=1 この記事を参考にしました。 用意している壁紙は7枚で画像ファイルは0~7.gifとしています。 記述するhtmlファイルと同じ階層にhaikeiフォルダを置き、その中に0~7.gif画像を入れました。画像の大きさは200*150で統一しています。 <SCRIPT LANGUAGE="JavaScript"> <!-- var imgback = "haikei/" ; var imgno = (Math.floor(Math.random() * 6) + 1) ; document.write("<TABLE frame=\"void\" cellpadding=\"0\" width=\"200\" height=\"150\" background = ", imgback+imgno ,".gif>"); document.write("<TR><td align=\"center\">hallo!</TD></TR>"); document.write("</TABLE>"); //--> </SCRIPT> ランダムにならないどころか何も表示されません。 どこがどう間違っているのでしょうか。

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

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

タグに属性をぐだぐだ書くのは今となっては微妙な感じですね cssで処理するのが妥当だと思います。 ただし今回は割愛して・・・。 backgroudの指定の際にダブルクォーテーションでくくってみては? とりあえずデバッグにはdocument.write内の、<を&lt;に置換するだけで ソースへの理解が深まります <SCRIPT LANGUAGE="JavaScript"> var imgback = "haikei/" ; var imgno = (Math.floor(Math.random() * 6) + 1) ; document.write("&lt;TABLE frame=\"void\" cellpadding=\"0\" width=\"200\" height=\"150\" background = \"", imgback+imgno ,".gif\">"); document.write("&lt;TR>&lt;td align=\"center\">hello!&lt;/TD>&lt;/TR>"); document.write("&lt;/TABLE>"); </SCRIPT>

bisuku
質問者

お礼

ポイント付与とお礼が遅れて申し訳ありません。 JavaScriptとCSSの基本をやりなおしてきます。 タグに属性をぐだぐだ書く、今となっては、の部分で、自分の知識が少し古すぎると納得できました。ありがとうございます。

その他の回答 (1)

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

エスケープを使うとわかりにくくなるので、シングルクォーテーションを利用して書くほうがわかりやすくなると思います。 document.write('<TABLE frame="void" cellpadding="0" width="200" height="150" background = "', imgback+imgno ,'.gif">'); No.1で回答されているように、style属性を制御する方がよさそう。 ○○.style.backgroundImage = 'url(haikei/' + imgback+imgno + ')'; とか・・(○○はエレメント)

bisuku
質問者

お礼

ポイント付与とお礼が遅れて申し訳ありません。 JavaScriptとCSSの基本をやりなおしてきます。 CSSがほとんど頭に入ってなかったのが恥ずかしい限りです。 ありがとうございました。

関連するQ&A

  • セルの背景画像ランダムチェンジがうまくいきません!

    過去の質問などを参考にセルの背景画像のランダムチェンジのソースを作りましたがうまく表示されません!何かアドバイスがあれば是非お願いします。 <head> <script language="javascript"> var BGimg=new Array(); BGimg[0]="image/01.gif"; BGimg[1]="image/02.gif"; var img_pcs=BGimg.length;//画像の数 var rdm_num=Math.floor(Math.random()*img_pcs);//乱数 function chg_BGimg(){ document.getElementById("changeIMG").style.backgroundImage="url('"+BGimg[rdm_num]+"')"; } </script> </head> <body onload="chg_BGimg();"> <table bgcolor="#333333"> <tr> <td id="changeIMG" style="background-image:url('image/first.gif');">このセルの背景が変わります</td> <td>blank</td> <tr> </table> </body> (実際のテーブルは列11×行9です。) 以上がソースです。どうも初期設定のfirst.gifが一瞬だけ表示されて、あとはテーブルの背景色になり、何も画像が表示されてず、「×」マーク(画像が見つからなかった場合にでるアイコン)もないのです。 このソースの改良点または、全く違う方法でも結構です、何かアドバイスがあれば是非お願いします。よろしくお願いします!

  • javascriptで複数の画像をランダム表示さたいです・・

    お願いいたします! javascriptで複数の画像をランダム表示さたいのですが。。。 4行6列のテーブルを使用し、同じ画像が重ならないようにランダム表示をさせたいのですがうまくいきません。。 途中まで出来たものは以下になります───────── <SCRIPT> IMAGES=new Array(); IMAGES[0]="x1.gif";IMAGES[1]="x2.gif"; IMAGES[2]="x3.gif";IMAGES[3]="x4.gif"; IMAGES[4]="x5.gif";IMAGES[5]="x6.gif"; IMAGES[6]="x7.gif";IMAGES[7]="x8.gif"; IMAGES[8]="x9.gif";IMAGES[9]="x10.gif"; IMAGES[10]="x11.gif";IMAGES[11]="x12.gif"; IMAGES[12]="x13.gif";IMAGES[13]="x14.gif"; IMAGES[14]="x15.gif";IMAGES[15]="x16.gif"; IMAGES[16]="x17.gif";IMAGES[17]="x18.gif"; IMAGES[18]="x19.gif";IMAGES[19]="x20.gif"; NUMBER=new Array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); document.write("<table border=0><tr>"); var i; var n=0; for(i=0;;i++){ j=Math.floor(Math.random()*24); if(NUMBER[j]==0){ if(n == 4){ document.write("</tr><tr>"); } document.write("<td><image src=\""+IMAGES[j]+"\"></td>"); n++; NUMBER[j]=1; } if(n==20){ break; } } document.write("</tr></table>"); </SCRIPT> ─────────────────────────── 上の物だと1行目は4つのテーブルになるのですが 2行目で残りの画像が1列になっていまします。。。 どうしたものでしょうか。。。 ご教授お願いいたします。

  • テーブルとテーブルの間の隙間

    以下の様なHTMLでIE6で表示した場合、●Aと●Bの間に、微妙な隙間が入ってしまいます。 どうやっても隙間が無くなりません。 ●Aの部分には、画像がランダムに表示されるようなスクリプトを記述していますが、 そのスクリプトを削除したら、ちゃんと隙間が無くなるのです(^^;) これって方法はありますか?どうにかランダムに表示させたいので、アドバイス下さい。 ============================ <script language="javascript" src="../js/top.js"></script> </HEAD> <BODY topmargin="0"> <DIV align="center"> <TABLE border="0" cellspacing="0" cellpadding="0"> <TBODY> ●A <TR> <TD width="800"><SCRIPT LANGUAGE="JavaScript">random_img2()</SCRIPT> <noscript><IMG src="../img/1.jpg" alt="" width="800" height="300"></noscript></TD> </TR> ●B <TR> <TD width="800"><A href="../index.html">HOME</A> &gt;&gt; TEST</TD> </TR> </TBODY> </TABLE> ============================ ※実際のHTMLには●Aと●Bという文字は入っておりません。 以下はtop.jsで記述している内容です。 ============================ function random_img1(num1,num2) { if((num1 - num2) > 0) { var big = num1 var small = num2 } else { var big = num2 var small = num1 } var range = big - small + 1 var number = Math.floor(Math.random()*range) + small return(number) } function random_img2() { var img_src = "../img/" + random_img1(1,3) + ".jpg" document.write("<IMG SRC='" + img_src + "'>") } ============================

    • ベストアンサー
    • HTML
  • 背景ランダム

    JavaScriptを使って背景をランダムに変更したいので すが、その背景ごとにを左上固定や縦リピートなど を設定することは出来るのでしょうか? 宜しくお願い致します ちなみにCSSは基本だけですが理解しています <SCRIPT LANGUAGE="JavaScript"> <!-- function randomWall() { if (navigator.appVersion > '5' || (navigator.appName == 'Microsoft Internet Explorer' && navigator.appVersion > '4')) { var max = 6; wall = Math.floor(Math.random() * max) + 1; if (wall == 1) { document.body.background = '1.gif' } else if (wall == 2) { document.body.background = '2.gif} } } //--> </SCRIPT>

  • Flashで背景をランダムに変えたいんですが‥‥

    外部のSWFファイルを読み込んで、それをランダムに表示させたいんですがどうも上手くいきません。 Flashがバージョン5のため、画像のみを貼りつけたSWFファイルを読み込ませて、それを背景に使おうとしています。 ホームページに載せて、見るたびに背景を変えようという狙いです。 それで、色々と調べてみてスクリプトもいじって外部ファイルを読み込んで表示はしてくれるようになったんですが、表示の一番上に来てしまってメニューのボタンなんかが隠れてしまうのです。 これが、書いてあるスクリプトです。 onClipEvent (load) { no = Math.floor(Math.random()*3)+1; loadMovieNum("haikei"+no+".swf", 0); } スクリプトにはどうも分からない点が多いので、細かく説明していただけるとありがたいです。 修正点や、「こういうやり方もある」っていうのがありましたら、ご指導の方をよろしくお願いします。

  • テーブルのセル余白について。

    テーブルのセル余白について。 <table border="1" width="200" cellpadding="20"> <tr> <td>1-1</td> <td>1-2</td> </tr> <tr> <td>2-1</td> <td>2-2</td> </tr> </table> cellpaddingが効かないみたいで、どうしてか全く分からなくて・・・ html初心者ですが、ご教示よろしくお願い致しますm(_ _)m

    • ベストアンサー
    • HTML
  • table内画像について

    携帯サイトを作成しているのですが、下記の内容を記述したところ、上下の画像が2px程表示されませんでした。 test1.gifは画像下部分、test2.gifは画像上部分が表示されませんでした。 このような状態はどのような原因があるからでしょうか? <table width="240" border="0" cellspacing="0" cellpadding="0"> <tr> <td><img src="test1.gif"></td> </tr> <tr> <td bgcolor="#ffffcc"> テストテストテストテストテストテストテストテストテストテストテストテストテストテストテストテストテストテストテスト </td> </tr> <tr> <td><img src="test2.gif"></td> </tr> </td> </tr> </table>

  • java scriptのwrite()の結果

    <script> document.write("<table border>"); document.write("<tr>"); for(i=0;i<3;i++){ document.write("<td>"+i+"</td>"); } document.write("</tr>"); document.write("</table>"); </script> 例えば上記のような Java Script を作ったとします。 Internet Explorer で実行すると表(HTMLの結果?)が表示されますが、 そうでなく 以下のようなHTMLのスクリプトを表示させる事は できますか? もしできるなら方法をお願いします。 <table border><tr><td>0</td><td>1</td><td>2</td></tr></table>

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

    このようなタグを使って、画像リンクのランダム表示を作成しました。 ((hard内)) <script type="text/javascript"><!-- // var imglist = [ [ "画像1", "", "リンク先1" ] , [ "画像2", "", "リンク先2" ] ]; function RandomImageLink() { // var selectnum = Math.floor(Math.random() * imglist.length); // var output = '<a href="' + imglist[selectnum][2] + '">' + '<img src="' + imglist[selectnum][0] + '"' + ' alt="' + imglist[selectnum][1] + '"><br>' + imglist[selectnum][1] + '</a>'; // document.write(output); } // --></script> ((body内)) <script type="text/javascript"><!-- RandomImageLink(); // --></script> こうしてランダムに表示できるようになったのですが、私は『ランダムに1つ表示』ではなく、『ランダムに4つ表示』にしたいのです。 …どうすればいいのでしょうか? どなたか回答をお願いします。

  • ランダムに流れるMIDIを止める

    ホームページで、『ランダムにMIDIを流す』を取り入れました。 見ている人が、画像(●●●.gif/ストップと書いたもの)を押したら、曲が止まるようにしたいのですが。 <HTML> <HEAD> <TITLE> </TITLE> </HEAD> <SCRIPT language="JavaScript"> <!-- BGM = new Array(7); BGM[0]="1.mid"; BGM[1]="2.mid"; BGM[2]="3.mid"; BGM[3]="4.mid"; BGM[4]="5.mid"; BGM[5]="6.mid"; BGM[6]="7.mid"; maxSound = 6; function setBGM() { soundNo = Math.floor(Math.random()*maxSound); if (navigator.appName == "Netscape") document.writeln("<EMBED src='",BGM[soundNo],"' autostart=true loop=true>"); else document.writeln("<BGSOUND src='",BGM[soundNo],"' loop=infinite>"); } // --> </SCRIPT> <SCRIPT language="JavaScript"> <!-- setBGM(); // --> </SCRIPT> <CENTER> <TABLE width="594"> <TBODY> <TR> <TD width="220"><BR>メール送信はこちらから</TD> <TD height="26" align="center" width="106"><A href="mailto:○○○?Subject=ホームページから"> <IMG src="mail.gif" width="57" height="80" border="0" alt="メールくださいね"></A></TD> <TD nowrap height="26" align="center" width="235"><FONT color="#ff2492">SOUND OFF</font> <img src="●●●.gif" border="0"></a> <BR> <FONT color="#0000a0">2002.3.11 更新<BR></FONT></TD> </TR> </TBODY> </TABLE> </CENTER> </BODY> </HTML> 簡単に出来る方法がありましたら、教えてください。

専門家に質問してみよう