2017-07-06 59 views

回答

1

想法是:聽dragmove事件,爲所有需要移動的其他對象應用position diff。

let oldX, oldY; 
layer.on('dragstart', (e) => { 
    oldX = e.target.x(); 
    oldY = e.target.y(); 
}); 
layer.on('dragmove', (e) => { 
    const diffX = e.target.x() - oldX; 
    const diffY = e.target.y() - oldY; 

    // move everyone 
    layer.children.each((child) => { 
    // skip draggable circle 
    if (child === e.target) { 
     return; 
    } 
    // move other nodes 
    child.x(child.x() + diffX); 
    child.y(child.y() + diffY); 
    }); 
    oldX = e.target.x(); 
    oldY = e.target.y(); 
}); 

演示:http://jsbin.com/babasibudi/1/edit?js,output