【发布时间】:2016-06-16 18:58:24
【问题描述】:
我有一个 500*250 (w*h) 的画布并将此代码应用于它;
var cvs = document.getElementById('Dugong');
var ctx = cvs.getContext('2d');
var cvsHeight = cvs.height; // 250
var cvsWidth = cvs.width; // 500
var loadUpFlappy = "Flappy";
var loadUpDugong = "Dugong";
ctx.fillStyle = "#ECA20F";
ctx.fillRect(5, (cvsHeight / 2) + 1, ctx.measureText(loadUpFlappy).width + 10, 2); // across, down, width, height
ctx.fillRect(cvsWidth - (ctx.measureText(loadUpDugong).width + 5), cvsHeight / 2 + 1, ctx.measureText(loadUpDugong).width + 10, 2);
ctx.fillStyle = "#DADFE1";
ctx.font = "40px Century Schoolbook";
ctx.fillText(loadUpFlappy, 10, cvsHeight / 2);
ctx.fillText(loadUpDugong, cvsWidth - (ctx.measureText(loadUpDugong).width + 10), cvsHeight / 2);
据我所知,这段代码应该输出;
- 一条
#ECA20F线,高度为2,距离左画布边框5,在画布中间线下方1,宽度为@ 987654327@加10。 - 另一条
#ECA20F线高度为2,距离右 画布边框5,在画布中间线下方1,宽度为@ 987654333@加10。
与
-
#DADFE1中的单词Flappy是10远离画布的左 边框,位于画布的中间。 - 单词
Dugong也在#DADFE1中,即10远离画布的右边框,也在画布的中间。
我的问题是线条与文本不匹配(它们应该跨越文本的宽度加上两边的 5px)。相反,他们这样做;
很抱歉,如果这个问题有任何明显的答案,因为我是 javascript 和画布的“菜鸟”。
【问题讨论】:
标签: javascript html canvas