我想创建一个显示textarea文本的画布。 我在控制textarea中文本的大小时遇到问题。 换句话说,我希望用户选择文本的大小,然后将其写入文本区域,一旦单击该按钮,文本区域将显示在画布上。
我试过这段代码,但有一个问题,我不知道它是什么。 以下是代码示例:
<script>
var y = 30;
function pasteText()
{
Text=document.getElementById('textarea').value;
var x = 30;
var lineheight = 15;
var lines = Text.split('\n');
$("#clr2 font").click(function (){
context.fillStyle=$(this).css("color");
});
$("#clr3 font").click(function (){
context.font=$(this).css("font-size")+ "Arial";
});
for (var i = 0; i<lines.length; i++)
context.fillText(lines[i], x, y + (i*lineheight) );
y+=38;
}
</script>
<body>
<canvas class="canvas" id="canvas" width="600" height="200" style="border:1px solid"> </canvas>
<font id="clr3">
<font style="font-size:9pt;"> Small</font>
<font style="font-size:16pt;"> Medium</font>
<font style="font-size:24pt;"> Large</font>
</font>
<textarea name="textarea" cols="72" rows="6" id="textarea" value="Type the text here" ></textarea>
<input type="button" name="paste" value="Paste on the canvas" onClick="pasteText()"/>
<script type="text/javascript">
var container = layer2.parentNode;
canvas = document.getElementById('canvas');
context = canvas.getContext('2d');
</script>
</body>
答案 0 :(得分:0)
您的代码中存在很多问题,有些问题会立即出现:
for
循环代码未括在大括号{ }
pasteText
函数内定义,因此只有在用户点击粘贴文本按钮后才会注册。<font>
标签不是标准标签和某些浏览器,尤其是IE不喜欢它。字体大小和字体之间的空格是否可能缺少?尝试在Arial
:
context.font=$(this).css("font-size")+ " Arial";
答案 1 :(得分:0)
我确信问题出现在context.font
中因为context.font接受字体的大小和系列。
我不确定我在代码中编写的内容是否正确 context.font = $(this).css(“font-size”)+“Arial”;