我在将用户在文本区域中输入的新行和多个空格反映到画布元素上时遇到问题。我似乎找不到将文本转换为预格式化的方法。
基本上我的网站的工作方式是我有一个文本框,用户可以在其中输入文本区域内的文本。然后将此文本传递给 canvas 元素。
我提供了我的代码示例。本质上,当用户在文本区域内键入时,它会传递给一个名为 inputtextgo1 的函数。输入文本 1 从文本区域获取文本并将文本复制到画布元素(Section1 画布)上。
HTML:
<canvas id="Section1Canvas" width="500" height="95" >Your browser does not support the HTML5 canvas tag.</canvas>
<textarea class="bags" id="bag1areatext" onkeyup="inputtextgo1()" name="Text">Sample Text</textarea> <br/>
Javascript:
var canvas = document.getElementById('Section1Canvas'),
context = canvas.getContext('2d');
section1backgroundimage.onload = function(){
context.drawImage(section1backgroundimage, 0, 0);
context.fillText("Sample Text",250,50);
}
section1backgroundimage.src = 'images/Selection/Bag/Section1/LightBlue.jpg';
context.font="34px " + selfonttype;
context.textAlign="center";
context.fillStyle = seltextcolor;
function inputtextgo1() {
var y = document.getElementById("bag1areatext").value;
context.clearRect(0, 0, 500, 95)
context.font="34px " + selfonttype;
context.fillStyle = seltextcolor;
context.fillText(y,250,50);
}
selfontype 是用户选择的字体,section1backgroundimage 是用于画布背景的图像文件,seltextcolor 是用户选择的字体颜色。
我希望我创建的画布元素能够反映用户在文本区域中输入的新行和空格。此外,我希望将文本换行(如果文本接触画布边缘以进入下一行)。
这只是我用来更新函数的代码片段。如果您需要其他代码来帮助解决问题,请告诉我。
非常感谢您的帮助。