回答
这可能是值得考虑的一个教程:Firefox Canvas Tutorial
您可以通过访问该元素的那些属性得到了canvas元素的宽度和高度。例如:
var canvas = document.getElementById('mycanvas');
var width = canvas.width;
var height = canvas.height;
上下文是您从画布中获取的对象,以便您可以将其绘制到该对象中。
上下文对象允许您操作画布;你可以绘制矩形例如更多。
如果你想获得的宽度和高度,你可以使用标准的HTML属性width
和height
:
var canvas = document.getElementById('yourCanvasID');
var ctx = canvas.getContext('2d');
alert(canvas.width);
alert(canvas.height);
这个回答与@ andrewmu's非常相似,并且如果您的大小通过CSS的画布。看到[我的答案](http://stackoverflow.com/questions/4032179/how-do-i-get-the-width-and-height-of-a-html5-canvas/31195651#31195651)为更强大解。 – 2015-07-02 22:26:45
嘛,是不完全正确的所有问题的答案之前。主要浏览器中的2个不支持这两个属性(IE是其中之一),或者以不同的方式使用它们。
更好的解决方案(大多数浏览器都支持,但我没有检查Safari浏览器):
var canvas = document.getElementById('mycanvas');
var width = canvas.scrollWidth;
var height = canvas.scrollHeight;
至少我得到scrollWidth和 - 高度正确的价值观和必须设置canvas.width和高度时,它是调整大小。
IE9的确支持canvas.width和height(好的,9之前的版本根本不支持canvas),我刚刚给它一下。你遇到了什么麻烦?另一个主要的浏览器是哪一个? – thomanski 2012-12-30 00:11:19
对,我真的永远不会更新IE,因为我不使用它。另一个主要的浏览器是Opera在调整大小时没有/没有更新宽度和高度。 – Bitterblue 2013-01-03 10:17:50
canvas.width/height在firefox中不起作用 – schwiz 2013-02-14 18:30:43
现在开始2015年,所有(主要?)浏览器似乎alow c.width
和c.height
得到画布内部大小,但:
的答案missleading的问题,因为帆布已原则上2不同/独立的尺寸。
的“HTML”可以说,CSS宽度/高度和它自己的(属性 - )宽度/高度
看看这个short example of different sizing,在这里我把200/200帆布为300/100 HTML元素
大多数例子(我看到的都是)没有css大小的设置,所以它会得到(绘图)大小的宽度和高度。但是这不是必须的,并且如果你采取了错误的尺寸 - 即可以产生有趣的结果。 css widht /内部定位的高度。
提及canvas.width
的答案返回画布的内部尺寸,即那些在创建元素时指定:
<canvas width="500" height="200">
如果大小与CSS画布,它的DOM尺寸通过.scrollWidth
和.scrollHeight
可访问:
var canvasElem = document.querySelector('canvas');
document.querySelector('#dom-dims').innerHTML = 'Canvas DOM element width x height: ' +
canvasElem.scrollWidth +
' x ' +
canvasElem.scrollHeight
var canvasContext = canvasElem.getContext('2d');
document.querySelector('#internal-dims').innerHTML = 'Canvas internal width x height: ' +
canvasContext.canvas.width +
' x ' +
canvasContext.canvas.height;
canvasContext.fillStyle = "#00A";
canvasContext.fillText("Distorted", 0, 10);
<p id="dom-dims"></p>
<p id="internal-dims"></p>
<canvas style="width: 100%; height: 123px; border: 1px dashed black">
我,因为有一个问题我的画布是在一个没有ID的容器里面,所以我用下面的这个jQuery代码
$('.cropArea canvas').width()
- 1. HTML5:画布宽度和高度
- 2. 获取宽度和高度的布局
- 3. HTML5画布高度和宽度100%扭曲游戏动画
- 4. 获取画布元素的正确宽度和高度
- 5. 使用javascript获取画布宽度和高度
- 6. HTML5:画布圈为椭圆形,因为宽度和高度
- 7. 画布高度和宽度问题
- 8. 获取高度和宽度
- 9. 获取画布中两个选定点的宽度/高度
- 10. HTML5帆布100%宽度视口高度?
- 11. HTML5画布和线条宽度
- 12. Android |获取屏幕高度,宽度和屏幕宽度,高度
- 13. 如何测量具有自动高度和宽度的画布
- 14. 如何增加Photoshop Sprite的画布宽度和高度
- 15. 使用JavaScript获取HTML5视频的宽度和高度?
- 16. 如何获取Canvas的宽度/高度?
- 17. 设置宽度/高度时,在HTML5画布中禁用重置
- 18. 获取图像的宽度和高度
- 19. 获取文档的宽度和高度
- 20. 获取图像的宽度和高度
- 21. 获取iframe的高度和宽度
- 22. 获取图像的宽度和高度
- 23. 获取元素的宽度和高度
- 24. 绑定表到画布高度宽度
- 25. 如何获得我的布局的高度和宽度
- 26. 获取画布高度而不画图
- 27. 动态高度,宽度和颜色到从数据库中获取的画布
- 28. 获取屏幕宽度和高度
- 29. 获取图片高度和宽度
- 30. jQuery获取高度和宽度
请注意,不幸的是,Mozilla教程现在基本上是一堆断开的链接。希望他们有一天能解决它。 – 2013-06-18 12:05:47
这将返回Chrome 31中的上下文画布大小。 – shuji 2013-12-03 04:09:40
只有当width和height被直接指定为标签属性 – vladkras 2017-03-07 14:40:24