1、最近在做一个在线试题编辑项目,连线题部分需要用canvas进行画线,canvas的宽和高要根据我的试题编辑情况进行动态设置,我通过js进行动态设置,但是没有起效果,打印出来的宽和高依旧是默认值,求大神指点。
2、代码如下:
var canvas=document.getElementById('canvas');
var context=canvas.getContext('2d');
var canvas_height=$('.connection-p-box').height();
canvas.style.width = "170px";
canvas.style.height = canvas_height;
console.log("宽为:"+canvas.width+"高为:"+canvas.height);
3、打印结果如下:

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
Canvas 要直接设置 attributes 的 width 和 height.
如此即可,它会让画布内容清空,即使当前尺寸和你设置的尺寸完全相同。
canvas标签的宽度是这样设置的你使用
canvas.style.width = "170px";出来的结果是这样的我也觉得楼上的对,canvas.width而不是canvas.style.width
谢谢大家,问题解决了 canvas的宽和高要通过设置属性值来改变,
并且宽和高的设置每次重新设置,都会重置canvas画布。