現在、キャンバスの幅と高さを受け取ろうとしています。私は未定義の値が返さconsole.log(ctx.width);
を使用して値を取得しようとしたJavaScriptを使用してキャンバスの幅と高さを取得します
<canvas id="ctx" style="height: calc(100vh - 142px); width: 100vw; display: block;"></canvas>
<script type="text/javascript">
var ctx = document.getElementById("ctx").getContext("2d");
console.log(ctx.width);
var socket = io();
socket.on('newPosition', function(data){
ctx.clearRect(0, 0, ctx.width, ctx.height);
ctx.fillText('P', data.x, data.y);
})
</script>
:あなたは、次のコードで見ることができるようにキャンバスは、styleパラメータを使用しています。私は、キャンバスをオートサイズに設定するためにスタイルタグを使用しているので、この問題が発生すると思います。
キャンバスの幅と高さを別の方法で受け取るにはどうすればよいですか?
私は何か提案をいただきありがとうございます。
'ctx.canvas.style.XXX'は、キャンバス要素の' style'属性に 'XXX'がある場合にのみ機能します:スタイルシートのものを取得せず、' clientXXX'や'offsetXXX'、さらには' getBoundingClientRect() 'のほうが良いでしょう。 – Kaiido