【发布时间】:2016-09-16 08:27:21
【问题描述】:
我有一些关于 HTML 5 Canvas 的问题,希望您能帮我解决。
情况: 我有一个画布和一些绝对定位的 div,它们是相对定位的 div 的子级。
<div class="relativeposition">
<canvas id="drawarea" height="700" width="800"></canvas>
<div id="absoluteposition1"></div>
<div id="absoluteposition2"></div>
<div id="absoluteposition3"></div>
</div>
所以你可以看到画布,画布上有 3 个不同的 div。现在我想在每个循环中的每个 div 下绘制一个多边形。这个多边形的位置应该几乎在 div 的中心。在每个 div 下,这个位置应该等于其他 div。
红色的 caros 是定位的 div,想象一下它们在每个 div 下的相同位置。绘制这些 caros 的伪代码如下:
$.each(absolutepositionedDivs, function(index, value) {
var divtop = absolutepositionedDiv.position().top;
var divleft = absolutepositionedDiv.position().left;
context.beginPath();
context.moveTo(playerLeft + 76, playerTop + 154);
context.lineTo(playerLeft + 46, playerTop + 174);
context.lineTo(playerLeft + 55, playerTop + 190);
context.lineTo(playerLeft + 97, playerTop + 190);
context.lineTo(playerLeft + 106, playerTop + 174);
context.lineTo(playerLeft + 76, playerTop + 154);
context.closePath();
context.lineWidth = 2;
context.strokeStyle = "red";
context.stroke();
});
canvas 的初始化等不在代码中,但我编写了它并且它有效。忽略抽签的结果不是caro...所以现在的问题是绘制的对象不在相同的位置,如下图所示:
所以我不明白为什么每个绘制的对象都有不同的位置,即使我写道它们都从 div 的相同位置开始但最终以不同的位置结束。你能告诉我为什么会发生这种情况或有一个解决方案将所有绘制的多边形放置在它们的 div 下的相同位置吗?
编辑:这是一个小提琴https://jsfiddle.net/asfga/yjjhqpyL/
【问题讨论】:
-
红色菱形看起来像是按比例缩放的,与您提供的代码不匹配。您必须提供更多信息。据我所知,每颗钻石都以不同的比例渲染,这可以解释为什么它们的偏移量都不同
-
为什么不同的比例?每个循环中的绘图导致相同的菱形,但仅在不同的位置,还是我看错了?
-
您提供的两张带有钻石的图片显示每颗钻石都不同。您需要提供准确的信息,包括 CSS/HTML 和实际代码,否则我们只能猜测问题所在。画布渲染没有任何问题,它每次都会在正确的像素地址处渲染。问题不是画布而是设置问题。
-
好的,感谢您的回复。明天我会更新css设置。希望你会更清楚
-
更新了它并创建了一个小提琴。部分图纸位置不对,希望您能帮帮我;)
标签: javascript jquery html canvas