画布上下文坐标不一致
canvas context coordinates are inconsitent
我正试图在html5画布上绘制,下面的代码应该会给我一条从左上到右下的对角线。然而,我没有得到预期的结果。是否需要对上下文进行任何转换?HTML
<canvas id="myCanvas" style="margin-left:auto; margin-right:
auto;width:700px;height:100px;border:1px solid grey">
</canvas>
JS-
var canvas = $("#myCanvas");
var pen = canvas[0].getContext("2d");
pen.strokeStyle = "#000000"; pen.lineWidth = "2";
pen.beginPath(); pen.moveTo(700, 100); pen.lineTo(0,0);
pen.stroke();
http://jsfiddle.net/neilghosh/DvjAP/2/
jsFiddle演示
奇怪但真实。Canvas元素W/H必须(不仅是*)设置为inline,如:
<canvas id="myCanvas" width="700" height="100"></canvas>
将其余部分放在CSS样式表中:
#myCanvas{
margin-left:auto;
margin-right: auto;
border:1px solid grey
}
为了更好地理解:
默认情况下,Canvas元素的W/H值为:300x150,但如果您在样式表中更改该值,则会像拉伸任何其他图像一样拉伸画布渲染。另一种改变W/H的方法是使用JS,比如:
canvas[0].width=700
canvas[0].height=100;
演示
相关文章:
- 当属性不一致时,如何根据属性对JS对象列表进行排序
- Android和JavaScript解析API之间不一致
- Javascript的行为与PHP包含文件不一致
- 对这种与document.domain和CORS相关的不一致行为的解释是什么
- 点击链接行为不一致
- Passport.js`isAuthenticated()`不一致的行为;当它应该是真的时候是假的
- 与显示不一致
- Ext 4.2.1 模型日期解析在浏览器之间不一致
- 通过 Dropbox API 上传时的文件内容不一致
- JavaScript - 对象属性不一致
- Javascript 混淆了 null、instanceof 和 typeof 的语法不一致
- localeCompare 显示使用前导变音字符对单词进行排序时不一致的行为
- SVG 对象部分上的 JQuery click() 不一致
- 使用forEach和.shift()时结果不一致
- Window.open浏览器的高度不一致
- 不同浏览器中的LinkButton PageMethod行为不一致
- 当活动处于后台时,Android WebView不一致
- 使用正则表达式删除标记时,Firefox和Chrome之间存在不一致
- 调用两次时 jQuery 偏移量(坐标)的行为不一致
- 画布上下文坐标不一致