• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:javascriptのカルーセル)

javascriptのカルーセル

このQ&Aのポイント
  • javascriptを使用して配列に入れたイラストとタイトルを順次両方向に表示するカルーセルを作成したい
  • 画像をボタンで前後に移動する機能は実装できたが、画像に対応する表題を表示する方法がわからない
  • テーブルを利用して画像と表題を配列から呼び出すことは可能かどうか悩んでいる

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

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

画像の変わりにテキストを、同様に入れ替えてあげればよろしいかと。 同じ雰囲気でいくのなら、例えばそのまま画像の下に表題を表示するとして、HTMLの画像タグの改行の後に  <span id="caption">caption0</span> などのような表題を表示する部分を設けておいて、 画像と同様に表題を配列で  caption[0] = "Caption0";  caption[1] = "Caption1";   ・・・・・ 定義しておいて、画像を入れ替えるのと同時に  document.getElementById("sd").src = IMG[cnt].src;  document.getElementById("caption").innerHTML = caption[cnt]; のように、テキストを入れ替えてあげれば可能です。 (他にも方法はいろいろあると思いますが…) ついでながら…  <table width="550"><tr><td><td>   <img src= >  </td></td></tr> っておかしくありませんか?(使うならcolspan=2とかでは?) Back()とForward()はほとんど同じ処理なので、 function move(n) { var elm, idx;  if (!(elm = document.getElementById("sd"))) return;  idx = cnt + n;  if (idx<0 || idx>=IMG.length) return;  cnt = idx;  elm.src = IMG[idx].src;  document.getElementById("caption").innerHTML = caption[idx]; } みたいにまとめておいて、move(1)、move(-1)のようにして使うという考えもありかも。

minazz
質問者

お礼

うおー、できました!!まったく初心者なものでいろいろとつっこみどころはあると存知ますがとりあえず動いたので非常に嬉しいです。innerHTMLというメソッドを見て「これなのかなー」と思っていましたが使い方がよくわからないでいました。ほんとうにありがとうございました!!

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.1

<image>要素には、そもそもaltという属性があって、その画像のタイトルを 入れても、この場合イラストのタイトルだから許されると思います。 だから、  IMG[0]=new Image();  IMG[0].src="chatsune/chatsune18.JPG"; と同じように  IMG[0].alt="hogehoge18"; とセットしとけます。 表題の表示は、単に<span>要素のテキストノードの書き換えでもいいでしょう。  document.getElementById("title").innerHTML = IMG[cnt].alt; とか、   var title,span;   title = document.getElementById("title");   span = document.createElement("span");   span.appendChild(document.createTextNode(IMG[cnt].alt));    while(title.hasChildNodes())   title.removeChild(title.firstChild);   document.getElementById("title").appendChild(span); とかで、 <div id="title"></div>をお好きな場所に配置して、CSSで調整 すればよいんじゃないかと...

minazz
質問者

お礼

.innerHTMLの使い方がやっとわかりました。非常に助かりました。ありがとうございました!

すると、全ての回答が全文表示されます。