gpt4 book ai didi

javascript - 不使用 canvas.getActiveObject() 方法更改 Canvas 文本

转载 作者:行者123 更新时间:2023-11-27 22:29:43 24 4
gpt4 key购买 nike

在不单击 Canvas 区域的情况下,我想在将文本添加到 Canvas 后对其进行更改。在我的代码中,我必须先选择 Canvas 文本,然后在输入文本区域时更改它。这是我的代码://html

    <canvas id="c" width="400" height="200"></canvas>
<br>
Change Text :
<textarea style="margin:0px;" id="textinput" rows="5" ></textarea>

//脚本

    var canvas = new fabric.Canvas('c');
var text = new fabric.Text('Honey', {
fontSize: 100,
left: 50,
top: 50,
lineHeight: 1,
originX: 'left',
fontFamily: 'Helvetica',
fontWeight: 'bold'
});
canvas.add(text);

$("#textinput").keyup(function(event) {
//document.getElementById('textinput').addEventListener('keyup', function (e) {
// alert("hi");
var obj = canvas.getActiveObject();
if (!obj) return;
obj.setText(event.target.value);
canvas.renderAll();
});

//CSS

 canvas {  border:1px solid #000; }
.controles { margin:50px 0; }

任何人都知道如何做到这一点?这是我的 fiddle Demo .

最佳答案

这应该可以解决问题:

canvas.getObjects()[0].text = "Boo Boo";
canvas.renderAll();

这是一个 fiddle :http://jsfiddle.net/xadqg/

这当然会得到第一个对象,但是因为你只有一个,所以应该没问题。

随意将 Boo Boo 更改为您想要的任何内容,例如 $(this).val()

关于javascript - 不使用 canvas.getActiveObject() 方法更改 Canvas 文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19007812/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com