Vue.js 选择下一个/上一个项目&;用面料js将其带到前面
假设画布上有10件物品。我需要实现Vue.js 选择下一个/上一个项目&;用面料js将其带到前面,vue.js,fabricjs,Vue.js,Fabricjs,假设画布上有10件物品。我需要实现next和previous按钮 单击“下一步”时,如果有活动对象,则应选择下一个对象并将其置于前面,以便用户可以轻松单击该项目并移动它 但是在fabricJs中,所有层都表示为对象数组。当我把对象放在前面时,它会改变它的索引。例如,我们有3项: 1 // currently selected 2 3 然后我将2个项目设置为活动,并将其带到前面。阵列现在变为: 2 // currently selected and brought to top 1 3 然后
next
和previous
按钮
单击“下一步”时,如果有活动对象,则应选择下一个对象并将其置于前面,以便用户可以轻松单击该项目并移动它
但是在fabricJs中,所有层都表示为对象数组。当我把对象放在前面时,它会改变它的索引。例如,我们有3项:
1 // currently selected
2
3
然后我将2个项目设置为活动,并将其带到前面。阵列现在变为:
2 // currently selected and brought to top
1
3
然后,如果我选择下一项,它将是1,而不是3
下面是示例代码:
selectNextItem() {
let activeObject = this.canvas.getActiveObject()
if (!activeObject) {
return false
}
let totalObjectsNumber = this.canvas.getObjects().length
let currentIndex = this.canvas.getObjects().indexOf(activeObject)
let nextIndex = null
// We reached the last item, rewind to the beginning
if (currentIndex === totalObjectsNumber - 1) {
nextIndex = 0
} else {
nextIndex = currentIndex + 1
}
let object = this.canvas.item(nextIndex)
this.canvas.setActiveObject(object)
object.bringToFront() // <--- this causes problem
this.canvas.renderAll()
}
selectNextItem(){
让activeObject=this.canvas.getActiveObject()
如果(!activeObject){
返回错误
}
让totalObjectsNumber=this.canvas.getObjects().length
让currentIndex=this.canvas.getObjects().indexOf(activeObject)
设nextIndex=null
//我们到了最后一项,倒带到开头
如果(currentIndex==totalObjectsNumber-1){
nextIndex=0
}否则{
nextIndex=currentIndex+1
}
让对象=this.canvas.item(nextIndex)
this.canvas.setActiveObject(对象)
object.bringToFront()//我尝试使用你的函数I它对我使用Fabricjs 2.3.3很好。你使用的是什么版本
var canvas=newfabric.canvas('c');
var rect=new fabric.rect({
左:100,,
前100名,
填写:“FF0000”,
笔画:“000”,
宽度:100,
身高:100,
冲程宽度:10
});
var rect2=new fabric.Rect({
左:150,
排名:150,
填充:“FF0FF0”,
笔画:“AABBCC”,
宽度:100,
身高:100,
冲程宽度:10
});
var rect3=new fabric.Rect({
左:75,
排名:75,
填写:“CCCFF0”,
笔画:“DDBBFF”,
宽度:100,
身高:100,
冲程宽度:10
});
canvas.add(rect、rect2、rect3);
log(canvas.getObjects());
setInterval(函数(){
选择nextitem();
},1500);
函数selectNextItem(){
console.log('选择下一项');
让activeObject=canvas.getActiveObject()
如果(!activeObject){
返回错误
}
让totalObjectsNumber=canvas.getObjects().length
让currentIndex=canvas.getObjects().indexOf(activeObject)
设nextIndex=null
//我们到了最后一项,倒带到开头
如果(currentIndex==totalObjectsNumber-1){
nextIndex=0
}否则{
nextIndex=currentIndex+1
}
让对象=canvas.item(nextIndex)
canvas.setActiveObject(对象)
object.bringToFront()//