やりたいこと
Javascript において取得した時間、要素の幅をもとにスタート位置を定め、適当な位置にcanvasで描画したいです。
具体的には、
(現在時刻)/(1日の秒数:86400)* (要素の幅:722px)
という式で、その時刻におけるスタート位置を決めています。
困っていること
コンソールで確認したところ、時間、要素の幅、スタートポイントは全てあっているのですが、実際に描画される位置は全く違うところになってしまいます。
例えば下の画像はスタートポイントを200に指定した場合です。本来は原点(0のところ)から200pxのところから描画開始してほしいのですが(8と10の間あたり)、かなりズレてしまっています。(16の右上から描画されている)
Javascript
1var canvas1 = document.getElementById("myCanvas1"); 2var ctx1 = canvas1.getContext("2d"); 3let client_w = document.getElementById("myCanvas1").clientWidth; 4var e = new Date(); 5var time = parseInt(e.getHours()*3600) + parseInt(e.getMinutes()*60) + parseInt(e.getSeconds()); //3600 6var startpoint = (time/86400)*client_w; 7startpoint = 200; 8var cw = client_w/86400*0.5 9 10console.log(client_w); 11console.log(startpoint); 12console.log(time); 13console.log(cw); 14 15 16 $(function (){ 17 18 19 function abc(){ 20 21 22 23 var e = new Date(); 24 time = parseInt(e.getHours()*3600) + parseInt(e.getMinutes()*60) + parseInt(e.getSeconds()); 25 console.log(time); 26 27/* 28 29 if (time == 86399){ 30 console.log("in the if"); 31 startpoint = 0; 32 ctx1.clearRect(0, 30, client_w, 60) 33 } 34*/ 35 36 ctx1.fillRect(startpoint, 30, cw, 60); 37 startpoint = startpoint + cw; 38
HTML
1<div class="row" style="margin-bottom: 20px; margin-top: 5px; margin-right: 5px;"> 2 <div class="col-md-12" style="padding-right: 0px; padding-left: 5px;"> 3 <div class="row" style="padding-right: 5px; padding-left: 10px; margin-left: 5px;"> 4 5 <div class="col-md-12"> 6 <div class="row"> 7 <div class="col-md-2 black_style1"> 8 <div class="container"> 9 <p class="text_style6" id="result1"></p> 10 </div> 11 </div> 12 <div class="col-md-2 black_style1"> 13 <div class="text_style6"> 14 <input type="text" style="width: 50px; height: 15px; margin: -10px;" id="result1" onkeydown="machineOrder('1',event)"> 15 </div> 16 </div> 17 <div class="col-md-2 black_style1"> 18 <div class="text_style6" id="result1"></div> 19 </div> 20 <div class="col-md-2 black_style1"> 21 <div class="text_style6" id="result1"></div> 22 </div> 23 <div class="col-md-2 black_style1"> 24 <div class="text_style6" id="result2"></div> 25 </div> 26 27 </div> 28 <div class="row"> 29 <div class="col-md-12 black_style2"> 30 <div style="width: 100%;" > 31 <div style="height: 30px;" > 32 <div style="height: 10px;" id="chart1"> 33 <canvas class="canvas_style" id="myCanvas1"></canvas> 34 </div> 35 </div> 36 <div style="display:flex;justify-content: space-between;"> 37 <div class="text_style1">0</div> 38 <div class="text_style1">2</div> 39 <div class="text_style1">4</div> 40 <div class="text_style1">6</div> 41 <div class="text_style1">8</div> 42 <div class="text_style1">10</div> 43 <div class="text_style1">12</div> 44 <div class="text_style1">14</div> 45 <div class="text_style1">16</div> 46 <div class="text_style1">18</div> 47 <div class="text_style1">20</div> 48 <div class="text_style1">22</div> 49 <div class="text_style1">24</div> 50 </div> 51 </div> 52 </div> 53 </div> 54 </div> 55 </div> 56 </div>

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。