开箱即用,D3 V4平移和缩放对我来说非常适合使用以下代码:
const zoom = d3.zoom();
zoom.on("zoom", () => this.zoom());
this._svg.call(zoom);
zoom()
{
this._svg_g.attr("transform", d3.event.transform);
}
其中_svg是svg元素,而_svg_g是svg中的顶级g元素。
但是,我想要做的是将行为与不同于默认值的手势相关联。
我希望行为如下:
缩放
泛
确切的手势可能会发生变化,但基本要素是:
答案 0 :(得分:1)
您可以使用过滤器功能:
d3.zoom()
.filter(() => {
if (d3.event.type === 'wheel') {
// don't allow zooming without pressing [ctrl] key
return d3.event.ctrlKey;
}
return true;
})
.on('zoom', function () {
this.zoomed();
});