2015-10-27 4 views
0

Любая идея, как улучшить центрирование одной буквы в холсте HTML5?HTML5 холст - буквенное центрирование?

У меня есть этот код для анимации каждой буквы из слова.

interval = setInterval(function(){ 
    ctx.fillStyle = bgColor; 
    ctx.fillRect(0,0,128,128); 
    var letter = $textInpt.val()[letterId]; 
    ctx.font = fontSize +"px "+font; 
    ctx.fillStyle = fontColor; 
    ctx.textAlign = "center"; 
    ctx.textBaseline="middle"; 
    var letterWidth = ctx.measureText(letter).width; 
    ctx.fillText(letter, (canvas.width/2) - (letterWidth/4), (canvas.height/2)); 
    letterId++; 
    if (letterId>=$textInpt.val().length) letterId = 0; 
},t); 

И это то, что я получил (шрифт Arial, размер шрифта 80px)

enter image description here

скрипку: https://fiddle.jshell.net/ec265s1x/1/

ответ

2

Просто удалить - (letterWidth/4) из горизонтального положения вычислений :

ctx.fillText(letter, (canvas.width/2), (canvas.height/2)); 

Fiddle: https://fiddle.jshell.net/ec265s1x/2/

+0

Ty, я имел 10px границы в моем холсте контейнере так его уничтожить мои смещения, так что я добавить '- (letterWidth/4)'. Сейчас работает, спасибо :) – Sko