• ベストアンサー

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

過去の質問などを参考にセルの背景画像のランダムチェンジのソースを作りましたがうまく表示されません!何かアドバイスがあれば是非お願いします。 <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が一瞬だけ表示されて、あとはテーブルの背景色になり、何も画像が表示されてず、「×」マーク(画像が見つからなかった場合にでるアイコン)もないのです。 このソースの改良点または、全く違う方法でも結構です、何かアドバイスがあれば是非お願いします。よろしくお願いします!

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

#1です。 #2の方もおっしゃってますが、私もこのソースで動きました。 なので、#1のような回答をしたのですが、 >何も画像が表示されてず、「×」マーク(画像が見つからなかった場合にでるアイコン)もないのです。 少なくともIEの場合、パスが間違っていても、背景の場合、「×」マークはでないようです。 なので、多分、パスが間違っているか、アクセスできないのだと思います。 first.gifが一瞬表示されるということでしたので、パスが間違っている可能性は低いと思っていましたが、パスがあやしいと思います。 <img>タグなどで、その画像が、そのパスで表示できるかどうか点検されてみてはいかがでしょうか? また、セルの表示範囲に画像が無い場合でも、 IEの場合、背景が設定されている場所では、 右クリックから、「名前をつけて背景を保存」で背景が保存できるので、 これで、単に見えないだけなのかどうか調べることができます。

jamslot
質問者

お礼

ご回答有り難うございます。 アドバイスの通りやってみました。どうやら見えないのではなく画像が表示されていないようです。 う~ん、BLUEPIXYさんの環境でも見れたということは、htmlソース全体をもう一度見直す必要がありそうですね。。。

その他の回答 (2)

  • EUR
  • ベストアンサー率61% (29/47)
回答No.2

質問にあったソースでちゃんと動きました。 こちらの環境はXPsp2 IE6です。 背景は元画像の大きさそのままで表示されますので、元画像の大きさ>セルの場合は、入りきれるところまでしか表示されないはずです。 (実際は左上の方が表示されます) 元画像の大きさ<セルの場合は、背景が繰り返しで表示されます。 と考えると、たとえば01.gifの大きさがセルよりかなり大きくて、左上の部分は何も書かれていないとか・・・ってないですね。 駄文でした。

jamslot
質問者

お礼

ご回答有り難うございます。 EURさんの環境では問題ないのですね。。。 となると実際のソース内のセルの中身とか違うJSが干渉している可能性もありますね、、、 もう一度ソースとにらめっこしてみます!

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

表示はされているが、セルが小さいので画像が確認できないということはないでしょうか?

jamslot
質問者

補足

早速の書き込みありがとうございます。 テーブルにwidth,height設定(画像サイズと同じサイズにしました)とposition設定をしてみましたが、やっぱりだめでした~