我目前正在尝试获取画布的宽度和高度。如下代码所示,该画布使用了一个样式参数:
<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>
我试着使用 console.log(ctx.width);
来获取值,但返回了 undefined。我认为问题出在我使用 style 标签将画布设置为自适应大小上。
有什么其他方法可以获得画布的宽度和高度吗?
非常感谢任何建议。
style
属性中具有XXX
时,ctx.canvas.style.XXX
才有效:它不会从例如StyleSheet
中获取。最好使用clientXXX
或offsetXXX
,甚至更好的是getBoundingClientRect()
。 - Kaiido