FabricJS-组选择使对象在选择时处于最前面
FabricJS - Group selection brings objects to front while selected
当我选择一组对象时,所有对象都会自动呈现在所有对象之上。这是一种令人讨厌的行为,很难选择位于所选元素顶部的其他元素。
这里有一个这样的例子。
function newRect(index) {
return new fabric.Rect({
width: 100,
height: 100,
top: index * 30,
left: index * 30,
fill: '#' + (0x1000000 + (Math.random()) * 0xffffff).toString(16).substr(1, 6),
});
}
var canvas = new fabric.Canvas('canvas');
var rect0 = newRect(0);
canvas.add(rect0);
var rect1 = newRect(1);
canvas.add(rect1);
var rect2 = newRect(2);
canvas.add(rect2);
var group = new fabric.Group([rect0, rect1]);
canvas.setActiveGroup(group).renderAll();
setTimeout(function() {
canvas.discardActiveGroup().renderAll();
}, 5000);
当选择位于另一个元素后面的两个元素时,它们将渲染在第三个元素的顶部。但是,当取消选择它们时(等待5秒,直到组被丢弃),它们会正确地呈现在顶部元素的后面。
有没有办法禁止这种行为?我希望选定的元素在选定时保持z顺序,而不是在所有元素之上。
我想我已经找到了解决方案。
在初始化画布时,我需要放置addpreserveObjectStacking: true
选项。
var canvas = new fabric.Canvas('canvas', {
preserveObjectStacking: true,
});
https://jsfiddle.net/fbgu7697/3/
它像我预期的那样工作,但它似乎有一个奇怪的错误。我会在github上打开它。
更新
该问题已在1.6.1版本中修复。
https://jsfiddle.net/1vawp9gu/
相关文章:
- 州和城市选择框类似于国家细分页面
- 如何将返回的值应用于多个不同位置的多个选择器
- 剑道日期选择器最大日期
- 在HTML中记住用户区域设置选择的最简单方法
- 设置要在 select2 插件中选择的最小值
- 根据 Knockout.js 中的复选框绑定将来的日期选择器最大日期
- 如何在 mtz.monthpicker 中设置可选择的最大月份
- 如何限制使用多个文件输入时选择的最大文件数
- 选择中最接近的匹配项
- 只选择一个最接近的元素
- Angular JS UI启动日期选择器:最大日期和初始日期问题
- Jquery-查找起始元素与该选择器最接近的父元素匹配的所有元素
- 选择具有最小值的选项
- 如何设置Chrome应用's的最大宽度窄于最小化,最大化,关闭按钮的宽度
- 如何在jquery中转换日期选择器最小日期(+10y)到日期时间
- 筛选jQuery选择的最快方法——返回数组
- 如何选择具有最大值的记录
- 使用JavaScript setInterval()时,JQuery日期选择器最小日期不变
- 嵌套的悬停事件,仅适用于最直接的悬停元素
- 我如何使这个JavaScript只适用于最小宽度为1036px的浏览器上的用户