首页
学习
活动
专区
圈层
工具
发布

FabricJS层
EN

Stack Overflow用户
提问于 2017-05-22 17:57:30
回答 1查看 1.5K关注 0票数 1

最初,一个对象(fabric.Circle)被添加到我的画布中。

代码语言:javascript
复制
var canvas = new fabric.Canvas('myCanvas');
var circle = new fabric.Circle ({
    radius: 100,
    fill: 'white',
    stroke: 'black',
    originX: 'center',
    originY: 'center'
});
canvas.add(circle);

现在,如果我使用一个按钮将另一个对象添加到我的画布中,那么前面的对象就会消失。我认为它在前一层的顶部添加了新的对象。

我不想这样。有没有办法在不失去FabricJS的功能的情况下继续向当前层添加对象?

编辑:按钮及其相应功能如下:

代码语言:javascript
复制
<button onclick="addArrowToCanvas()">Add Circle</button>
<script>
                function addArrowToCanvas(){
                    var canvas = new fabric.Canvas('myCanvas');
                    var circle = new fabric.Circle ({
                        radius: 100,
                        fill: 'white',
                        stroke: 'black',
                        originX: 'center',
                        originY: 'center'
                    });
                    canvas.add(circle);
                }
            </script>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-22 18:25:30

是的,这确实将另一个对象添加到前面的对象之上,因为您在创建对象时没有指定对象的位置。

您需要根据需要为每个单独的对象设置不同的位置(顶部、左边),这样它们就不会重叠。

ᴅᴇᴍᴏ

代码语言:javascript
复制
var canvas = new fabric.Canvas('myCanvas');
var circle = new fabric.Circle({
   top: 50,  //<-- set this
   left: 50,  //<-- set this
   radius: 30,
   fill: 'white',
   stroke: 'black',
   originX: 'center',
   originY: 'center'
});
canvas.add(circle);

function addRect() {
   var rect = new fabric.Rect({
      top: 120,  //<-- set this
      left: 120,  //<-- set this
      width: 60,
      height: 60,
      fill: 'white',
      stroke: 'black',
      originX: 'center',
      originY: 'center'
   })
   canvas.add(rect);
}
代码语言:javascript
复制
body{margin:10px 0 0 0;overflow:hidden}canvas {border: 1px solid #ccc}
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/1.7.11/fabric.min.js"></script>
<canvas id="myCanvas" width="180" height="180"></canvas>
<button onclick="addRect()">Add Rectangle</button>

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44119248

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档