###前提・実現したいこと
引数で指定した回数だけ、新しいCanvasの作成と設定を行いたいのですが、別の場所で描画コンテキストの取得を行いたいため、
配列の中の要素を変数名として、変数を自動作成したいのですが、下のコードだと、変数を作成したのではなく、要素として組み込まれていることがわかりました。そこで、このコードの問題点をご教授願いたいのです。
###該当のソースコード
JavaScript
1function createLayer (layernum, width ,hieght){ 2 var x = width; 3 var y = hieght; 4 var l = (innerWidth-x)/2 5 var t = (innerHeight-x)/2 6 var canvas = new Array("Tapcav","Dbgcav","Dlgcav"); 7 for(i = 1; i <= layernum ; i++ ) { 8 canvas.push("camvas" + i) 9 } 10 11 for(i = 0; i<canvas.length ; i++ ) { 12 13 canvas[i] = document.createElement("canvas"); 14 canvas[i].width = x ; 15 canvas[i].height = y ; 16 //CSS 17 canvas[i].style.position = "absolute" ; 18 canvas[i].style.top = t ; 19 canvas[i].style.left = l ; 20 canvas[i].style.zIndex = i ; 21 console.log(canvas[i]) 22 23 document.body.appendChild(canvas[i]) 24 } 25} 26
###試したこと
問題点としては、そもそもCanvasにidを設定していないことですが、私が参考にしたサイトでは、
JavaScript
1var canvas1 = document.createElement('canvas');//Canvas作成 2canvas1.width = 800;//Canvas横幅 3canvas1.height = 600;//Canvas高さ 4
としていたため、変数=createElement、変数.widthなどで大丈夫だとは思うのです。
また、そもそもこのコードでは、あくまで要素に代入しているだけということは理解できているのですが解決方法がよくわかりません。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/09/25 11:43
退会済みユーザー
2017/09/25 12:12
2017/09/25 13:15
退会済みユーザー
2017/09/25 15:16
2017/09/26 04:18