Javascript D3中的嵌套缩放问题
请看我的小提琴: 可以按住SHIFT键,然后拖放矩形以移动矩形及其内部的圆。您还可以按住SHIFT键和zoom键。此缩放/平移由Javascript D3中的嵌套缩放问题,javascript,svg,d3.js,Javascript,Svg,D3.js,请看我的小提琴: 可以按住SHIFT键,然后拖放矩形以移动矩形及其内部的圆。您还可以按住SHIFT键和zoom键。此缩放/平移由d3.behavior.zoom()完成。效果很好 我想在不按住shift键的情况下缩放和平移圆。因此,我创建了另一个d3.behavior.zoom()。但是,圆可以缩放,但不能平移。通过调试,我发现当我平移圆时,处理代码不会执行 总之,当将zoom绑定到外部g元素和内部g元素时,外部可以很好地进行缩放/平移;但是,内部仅适用于缩放。如何让它也为pan工作?我找到了答
d3.behavior.zoom()
完成。效果很好
我想在不按住shift键的情况下缩放和平移圆。因此,我创建了另一个d3.behavior.zoom()
。但是,圆可以缩放,但不能平移。通过调试,我发现当我平移圆时,处理代码不会执行
总之,当将
zoom
绑定到外部g
元素和内部g
元素时,外部可以很好地进行缩放/平移;但是,内部仅适用于缩放。如何让它也为pan工作?我找到了答案的解决方案
当我平移圆时,它的缩放
事件不会触发。但是,它的zoomstart
事件会激发,并且在其父级的zoomstart
之前激发。不知何故,当父对象的zoomstart
启动时,它会吃掉圆的事件
因此,在圆的zoomstart
中,我强制事件在SHIFT未被保持时停止传播。这使得圆缩放激发