【问题标题】:Layers in canvas fabric.js画布 fabric.js 中的图层
【发布时间】:2016-06-06 10:27:18
【问题描述】:

我可以在画布中创建图层吗?我需要在对象和其他织物层上方有一个层,其中的对象在该层内移动。可能吗? 我使用fabric.js

编辑: 该小组不为我服务。我需要在画布中创建可以移动对象但不能移动其他对象的区域。并了解该区域的位置。 https://github.com/kangax/fabric.js/wiki/How-fabric-canvas-layering-works

【问题讨论】:

    标签: html canvas html5-canvas fabricjs


    【解决方案1】:

    至少对于织物,您可以对形状进行分组,并将作为一个整体移动:

    var canvas  = new fabric.Canvas('c');
    
    var rect1 = new fabric.Rect({ width: 100, height: 100, fill: '#0bda51' });
    var circle = new fabric.Circle({ radius: 100, fill: '#4d5d53' });
    var group1 = new fabric.Group([ circle, rect1 ], { left: 100, top: 100 });
    canvas.add(group1);
    
    var circle1 = new fabric.Circle({ radius: 100, fill: '#a2add0' });
    var circle2 = new fabric.Circle({ radius: 75, fill: '#0038a8' });
    var circle3 = new fabric.Circle({ radius: 50, fill: '	#bf94e4' });
    
    var group2 = new fabric.Group([ circle1, circle2, circle3 ], { left: 200, top: 200 });
    canvas.add(group2);
    
    var shadow = { color: 'rgba(0,0,0,0.6)', blur: 20, offsetX: 10, offsetY: 10, opacity: 0.6, fillShadow: true, strokeShadow: true }
    var rect = new fabric.Rect({ left: 100, top: 100, fill:  "#8ccd7b", stroke: "#000", width: 100,      height: 100, strokeWidth: 10, opacity: .8 });
    rect.setShadow(shadow);
    canvas.add(rect);
    <script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/1.5.0/fabric.min.js"></script>
    <canvas id="c" width="400" height="400"></canvas>

    【讨论】:

    • 群不为我服务。我需要在画布中创建区域,他可以在其中移动对象,但不能移动其他对象。并且知道在那个区域内占据的位置。
    • 我会尽力帮助你的,给我一点时间
    • 谢谢。他们对图层说以下内容:github.com/kangax/fabric.js/wiki/… 但我不清楚如何获得我之前询问的内容。
    • kangax 解释一下织物画布中的层顺序是什么,我会尝试用你需要的类似的东西构建一个小例子。
    猜你喜欢
    • 1970-01-01
    • 2013-02-08
    • 2016-03-31
    • 2012-01-07
    • 2018-03-15
    • 2016-04-24
    • 2020-01-04
    • 2015-03-19
    • 2012-12-01
    相关资源
    最近更新 更多