【问题标题】:User add text to shapes用户将文本添加到形状
【发布时间】:2013-11-03 06:20:12
【问题描述】:

如何向用户提供在形状内添加或更改文本的功能,例如圈子。

假设我有以下sn-p,当用户点击圆圈并写东西时如何添加文字:

var canvas = new fabric.Canvas('c1');
var circle = new fabric.Circle({radius: 30, fill: '#f55', top: 100, left: 100});

canvas.selectionColor = 'rgba(0,255,0,0.3)';
canvas.selectionBorderColor = 'red';
canvas.selectionLineWidth = 5;
canvas.add(circle);

我找到了一个question,但问题是我希望用户在画布的每个形状中添加文本。

【问题讨论】:

    标签: javascript fabricjs


    【解决方案1】:

    您可以使用the question you found's code 并稍作修改。

    您首先必须弄清楚用户在画布上单击的位置,并查看那里的字段文本。为此,请查看 this answerthis jsfiddle

    function collides(rects, x, y) {
        var isCollision = false;
        for (var i = 0, len = rects.length; i < len; i++) {
            var left = rects[i].x, right = rects[i].x+rects[i].w;
            var top = rects[i].y, bottom = rects[i].y+rects[i].h;
            if (right >= x
                && left <= x
                && bottom >= y
                && top <= y) {
                isCollision = rects[i];
            }
        }
        return isCollision;
    }
    

    一旦您知道点击了哪个文本字段,您就可以编辑该字段。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-09-17
      • 2016-12-14
      • 1970-01-01
      • 2013-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多