前提・実現したいこと
以前こちらでご質問させていただいたことに
関連する質問となり恐縮です。
https://teratail.com/questions/227944
CSSを用いて画像欄とメッセージ欄を作成し
メッセージ欄をクリックすることで読み進められる
プログラムを作ろうとしております。
上記URLの質問により、メッセージ欄クリックによる
表示メッセージの切り替えには成功いたしました。
その応用で、画像も配列によって切り替えようとしたのですが
うまくいきません。
画像を表示させた後、メッセージ欄をクリックして
文章と共に画像を切り替えようと考えているのですが
画像自体が表示できない状況です。
現状は画像欄に「undefined」と表示され
chromeのデバッグコンソール上にはエラーは表示されておりません。
発生している問題・エラーメッセージ
画像欄に「undefined」表示(未定義)
エラーメッセージはなし
該当のソースコード
html
1<!DOCTYPE html> 2<html lang="ja" dir="ltr"> 3<head> 4 <meta charset="utf-8"> 5 <title>sample</title> 6 <!--絵の表示枠サイズ指定とシナリオ表示枠サイズ指定、表示フォント情報です--> 7 <link rel="stylesheet" href="canvas.css"> 8</head> 9<body> 10 <!--ビジュアル表示枠を配置します--> 11 <div id="imagebox"></div> 12 <!--メッセージ表示枠を配置します--> 13 <div id="messagebox"></div> 14 <!--最初に戻る用のボタンです--> 15 <button id="init">最初に戻る</button> 16 <!--シナリオ表示用スクリプトです、本質問では省略します--> 17 <script src="scenario.js" charset="UTF-8"></script> 18 <!--絵の表示用スクリプトです--> 19 <script src="picture.js" charset="UTF-8"></script> 20</body> 21</html>
js
1/*picture.js*/ 2var picList =[ 3 "pic1.jpg", 4 "pic2.jpg", 5 "pic3.jpg", 6 "pic4.jpg", 7]; 8 9var img = new Array(); 10for (var i = 0; i < picList.length; i++){ 11 var image = new Image(); 12 image.src = picList[i]; 13 img.push(image); 14} 15 16window.addEventListener('load',function(){ 17 target = document.getElementById("imagebox"); 18 target.innerHTML = picList[i]; 19 })
css
1/*canvas.css*/ 2#imagebox{ 3 width:480px; 4 height:270px; 5 border-style:solid; 6 border-color:#696969; 7 border-width:2px; 8 background-color:#A9A9A9; 9 /*非選択処理です*/ 10 user-select: none; 11 } 12 13#messagebox{ 14 /*文字間隔です*/ 15 letter-spacing:1px; 16 /*行の高さです*/ 17 line-height:27px; 18 width:480px; 19 height:135px; 20 border-style:solid; 21 border-color:#696969; 22 border-width:2px; 23 /*フォントの太さです*/ 24 font-weight:bold; 25 font-size:27px; 26 color:#ffffff; 27 background-color:#A9A9A9; 28 /*非選択処理です*/ 29 user-select: none; 30 }
試したこと
一枚の画像の表示には以下のjsで成功いたしました。
js
1/*imagebox 内に pic.1jpg を表示*/ 2window.addEventListener('load',function(){ 3 target = document.getElementById("imagebox"); 4 target.innerHTML = "<img src = 'pic1.jpg'>"; 5 })
補足情報(FW/ツールのバージョンなど)
使用ブラウザ:chrome
使用エディター:visual Studio Code