如何防止特定元素上的svg拖动?

时间:2015-11-22 11:17:56

标签: mouseevent draggable svgpanzoom

我正在使用精彩的svg-pan-zoom插件(https://github.com/ariutta/svg-pan-zoom)来平移/缩放我的svg元素,我想启用鼠标拖动以让我们使用它来移动它。

我的svg中有一个元素,我想阻止拖动,因为它有一个点击事件,当用户点击它时,它有时会拖动svg元素。 请求的行为是标准拖动,除非鼠标在此元素上关闭。 我已经尝试使用event.stopPropagation()和event.preventDefault(),但似乎svg-pan-zoom插件有自己的事件管理。

如何阻止鼠标拖动?

1 个答案:

答案 0 :(得分:1)

  1. 您可以have 2 layers(如果您不需要平移/缩放该元素)。

  2. 或者您仍然可以保持所有元素缩放,但仅限some of them listening for events。只需将您想要侦听事件的所有内容放在一个SVG组元素<g>中,并将其设置为侦听事件。

  3. 最后一个解决方案是override default events点击/拖动并编写自己的处理程序。

  4. 如果您不需要缩放元素,我建议使用选项1,否则建议使用选项2。