WhentheFabric.jselementisselected,theoriginallevelismaintainedCascading,whenyouselectthebottomelement,thatelementwilljumptothetop;当你释放元素时,它会跑回原来的水平。这是Fabric.js的默认状态。如果你不希望在操作过程中发生这种情况,并且希望在选择元素时保持其原始层次结构,那么我建议你在初始化画布时将preserveObjectStacking设置为true。《preserveObjectStacking 文档》下面我来说明一下这个属性的作用和用法。默认情况下,默认是被选中的元素会跑到最顶层,松开后又跑回原来的层级。在上面的代码中,我创建了一个绿色圆圈和一个橙色矩形。在canvas.add(circle,rect)中,先添加圆,再添加矩形,所以矩形的层次会比圆形高。我特意调整了两个图形的位置,使它们部分重叠。所以最后的效果就是圆在矩形的下面。在Fabric.js中默认情况下,被选中的元素会跳转到顶层,所以可以看到上图的运行效果。保持原层级如果不想按照默认的条件进行操作,尤其是当画布中的对象较多时,希望操作的对象保持原层级,这样在某些地方操作会更直观个案。然后可以在初始化canvas的时候将preserveObjectStacking设置为true//省略部分代码constcanvas=newfabric.Canvas('canvasBox',{//当元素对象被选中时,它保持在当前z轴上,并且会不跳顶preserveObjectStacking:true//默认false})代码仓库?选择元素时保持原层