2
我有一個500 * 250(w * h)的畫布並將此代碼應用到它;Canvas Placement Issue
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);
據我所知,這段代碼應該輸出;其具有2
高度
- 一個
#ECA20F
線,是5
從左畫布邊界遠,是1
畫布中間線下方,並具有的Flappy
加10
寬度。 - 另一個
#ECA20F
線,其具有的2
的高度,是5
遠離右畫布邊界,是1
畫布中間線下方,並具有的Dugong
加10
寬度。
和
- 在
#DADFE1
字Flappy
這是10
從遠離開畫布邊界,是在中間的畫布。 - 字
Dugong
也在#DADFE1
這是10
遠離右畫布的邊界,也是在畫布的中間。
我的問題是,該線不與文本匹配了(他們應該跨越兩邊的文字加5像素的寬度)。相反,他們這樣做;
如果對不起有任何昭然若揭回答這個問題,因爲我是一個「菜鳥」,當涉及到JavaScript和畫布。
您的評論讓我意識到,如果我在**測試寬度之前聲明瞭字體樣式**,而不是在**之後**,它會工作。幸運的是,它的確如此! 非常感謝,我猜。 – Sennsei
@三星很高興提醒你。 – Hydro