我使用this example作为缩放项目的基础,但我想将缩放限制为仅按钮并双击。理想情况下,使用滚轮应该继续向下滚动页面,而不是在鼠标悬停在svg上时放大。任何帮助表示赞赏!
答案 0 :(得分:4)
对于D3 4.0,有两种方法可以防止d3变焦响应轮子事件。
A:
zoom.filter(function() { return !event.button && event.type !== 'wheel'; })
// the `!event.button` expression is from the default filter, according to
// doc for zoom.filter([filter])
B:
svg.on("wheel.zoom", null);
// according to doc for zoom(selection): Internally, the zoom behavior
// uses selection.on to bind the necessary event listeners for zooming.
// The listeners use the name .zoom
鼠标拖动仍然可以平移(翻译)。
答案 1 :(得分:1)
您可以通过以下方式实现这一目标:
var svg = d3.select("body").select("svg")
.attr("width", width)
.attr("height", height)
.append("g")
//.call(zoom) //remove the zoom listener from the group.
.append("g");
接下来,在圆圈和矩形上附加doublclick侦听器以进行缩放。
d3.selectAll("rect").on('dblclick', zoomClick)
d3.selectAll("circle").on('dblclick', zoomClick)
工作代码here