我有两个重叠的形状,并且我想在拖动两个单击时重叠。是否有捷径可寻?拖动两个重叠的形状
0
A
回答
0
这是一个小马车,但你可以美化它,但它确实你问什么,只是需要一些更多的逻辑/抛光。
你需要看的主要代码是:
shapesLayer.on('mousedown', function(){
var userPos = stage.getUserPosition();
var intersected = shapesLayer.getIntersections(userPos); //gets all shapes intersecting at click position
for(var i = 0; i < intersected.length; i++) {
intersected[i].moveTo(group2); // moves intersected shapes to a new group , need to add some code so that when item is moved to new group it keeps it's position
}
group2.simulate('dragstart'); //simulate dragging
shapesLayer.draw();
});
shapesLayer.on('mouseup', function(){ //when mouse is released
var kids = group2.getChildren();
for(var i = 0; i < kids.length; i++) {
kids[i].moveTo(shapesLayer); //place back in original container
}
shapesLayer.draw();
});
+0
我喜欢它,但它不适合我 - getIntersections(pos)没有任何功能。也就是说,如果模拟('dragstart')导致形状开始拖动,我可以直接在形状上调用它吗? – Narfanator 2013-02-12 18:40:14
+0
好吧,你不能在节点上使用'getIntersections(pos)',只能使用容器,但是你可以'模拟(事件)'几乎任何东西,所以你可以直接在形状上调用它。有很多不同的方式可以实现你想要做的事情,我只是尝试创建一个快捷方式。该解决方案需要额外的位置信息,以便您可以拖动所需的项目。 – SoluableNonagon 2013-02-12 18:49:27
相关问题
- 1. kineticjs停止拖动到与另一个重叠的形状
- 2. 两个纹理重叠在一个单一的形状
- 3. 叠加形状 - 错误的重叠形状行为
- 4. 如何测试两个任意形状的重叠(或碰撞)
- 5. 重叠形状识别(OpenCV)
- 6. Flex形状 - 标签重叠
- 7. 防止两个可拖动的圆圈交叉时重叠
- 8. 如何检测可拖动的圆形与KineticJS重叠的另一个圆形?
- 9. 在Jpanel上拖动形状
- 10. 两个矩形重叠多少?
- 11. 检查两个矩形是否重叠
- 12. 拖放形状
- 13. 重叠的Tableau地图形状
- 14. 控制Python龟的形状重叠?
- 15. 检查WPF中的重叠形状
- 16. 重叠部分透明的形状
- 17. 悬停在重叠的CSS3形状上
- 18. D3.js打破重叠的形状
- 19. SVG:重叠形状的填充图案
- 20. 与JPanel重叠的两个动态JTable
- 21. 如何从两个重叠的形状之间的差异边界找到CGPath
- 22. Jquery UI - 拖动形状,但保留原始形状的副本?
- 23. 检测两个正方形/矩形之间的重叠JAVA
- 24. 创建重叠的可拖动div div
- 25. 拖动没有填充的形状
- 26. KineticJS - 可连接的可拖动形状
- 27. 拖动HTML5的任何形状
- 28. WPF中的可拖动形状与childs
- 29. 如果两个部分不透明的形状重叠,可以只显示它们重叠的一个形状吗?
- 30. 如何将几何形状组合成一组重叠形状
不是最简单的,而简单,它们添加到组并拖动组。你可以用.getIntersections(position)得到相交的形状。然后在点击时将这些形状添加到组中,然后模拟dragstart。 – SoluableNonagon 2013-02-12 14:44:39
你可以提出一个你迄今为止尝试过的jsfiddle吗? – SoluableNonagon 2013-02-12 18:49:54