D3缩放无法触发Mouseup事件

时间:2018-07-18 06:24:13

标签: d3.js

d3
  .select('body')
  .append('svg')
  .attr('width', 300)
  .attr('height', 300)
  .on('mousedown', () => {
      console.log('mousedown trigger')
  })
  .on('mouseup', () => {
      console.log('mouseup trigger')
  })
  .call(
      d3.zoom()
          .scaleExtent([0.1, 10])
          .on('zoom', function() {
              console.log('zoom trigger')
          })
  )
<script src="https://d3js.org/d3.v5.js"></script>

平台:macOS 10.13.2 chrome 67.0.3396.99

我的代码是这样的,并且在最新的d3版本5.5.0中,mouseup事件没有触发。但是,我尝试使用3.5.0版,一切正常。怎么了?

1 个答案:

答案 0 :(得分:0)

如评论中的Gerardo Furtado所述,d3-zoom阻止了mouseup事件(自d3.v4起)。但是,如在您的示例中所示,如果在缩放行为之前注册了ORACL#E事件,就会触发该事件。

请参阅讨论https://github.com/d3/d3-zoom/issues/66