Я попытался найти ответ на это всюду, но, похоже, я его не нашел. Но я хочу переместить текст, созданный из ввода, в определенную позицию на холсте, скажем, в верхнем центре.Переместить элемент холста в нужное положение
код работает следующим образом: (JSFIDDLE)
<canvas id="canvas" style="background-color: #000" width="800px" height="300px"></canvas>
<input type="text" id="header-text" placeholder="Your Title">
Между тем, JS выглядит следующим образом:
var canvas = document.getElementById('canvas'),
ctx = canvas.getContext('2d');
document.getElementById('header-text').addEventListener('keyup', function() {
var stringTitle = document.getElementById('header-text').value;
console.log(stringTitle)
ctx.clearRect(0, 0, canvas.width, canvas.height);
ctx.fillStyle = '#fff';
ctx.font = 'bold 36px Arial';
ctx.textAlign = 'center';
var text_title = stringTitle;
ctx.fillText(stringTitle, 15, canvas.height/2 + 35);
});
Есть ли способ, где я могу переместить текст генерируемый в самом центре? Благодаря!
работал! Благодаря! –
Ой! Использование жестко закодированных y-смещений (или даже y-смещений на основе размера шрифта) не очень точно. Вместо этого используйте 'context.setBaseline', который создан для точной цели вертикального выравнивания текста. – markE
Вы правы. Ваш ответ лучше, мой плохой. Я все еще изучаю JS;) –