javascript - 我还是 jsfiddle 错误?

标签 javascript css html5-canvas jsfiddle

简单的 Canvas 绘图,好像在 jsFiddle 坐标上没有被正确识别:
JS:

var w = $(".trace").width();
var h = $(".trace").height();

var bgCanvas = $("<canvas></canvas>").addClass("canvas");
bgCanvas.width(w).height(h);
var bgContext = bgCanvas[0].getContext("2d");

$(".trace").append(bgCanvas);

bgContext.strokeStyle = "#000";
bgContext.moveTo(0,0);
//this line should go to the middle of the canvas
//instead it goes much further both horizontally and vertically
bgContext.lineTo(200,100);
bgContext.stroke();

HTML:

<div class="trace"></div>

CSS:

.trace{
    width: 400px;
    height: 200px;
    background: yellow;
}
.canvas{
    border: 1px #000 dotted;
}

jsFiddle

检查了最新的 IE 和 Chrome。
他们(jsFiddle 开发人员)建议在 github 上提交问题之前与其他人分享和检查,所以...是我在某处的错误,还是 jsFiddle?

最佳答案

改变这一行:

bgCanvas.width(w).height(h);

对此它会起作用:

bgCanvas.attr({width: w, height:h});

通过使用 .width.height,您只需修改 Canvas 元素 的 CSS 大小,而不是其位图。由于默认大小为 300 x 150,因此会拉伸(stretch)到您使用 CSS 设置的任何大小。

Modified fiddle

关于javascript - 我还是 jsfiddle 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20635596/

相关文章:

javascript - CSS-HTML |通过 css 修复背景

javascript - 如何使用经典 ASP 保存 Canvas 图像?

javascript - 分析器条动画 HTML 音频 API 不起作用

javascript - 停止所有事件的传播

javascript - 调整大小后获取 Gridster 小部件的新大小

javascript - 如何在 React 的渲染中进行比较

CSS - 对 Angular 线分割悬停效果

jquery - 将 margin-left 添加到 div

javascript - Canvas 图像遮蔽/重叠

javascript - Angular : Dealing with reload page and User Authentication