我有一个SVG,我想对click事件应用缩放。截至目前,缩放功能正在发挥作用,但SVG的转换尚未发生,通过将SVG的中心作为原点进行缩放,我希望缩放发生在单击点处。 基本上缩放比例很好,但是缩放变换不好。 我正在使用d3 v4。
我的缩放Listerner:
var zoomListener = d3.zoom()
.scaleExtent([zoomMin, zoomMax])
.translateExtent([ [0, 0], [width, height] ])
.on('zoom', function() {
var e = d3.event.transform;
that.currentTransform = e;
coverSvg.transition().duration(100).ease(d3.easeLinear).
attr('transform', e);
})
我的点击事件是:
outerSvg.on("mousedown", function() {
var currentZoomLevel = that.currentTransform ?
that.zoomListener.
}
this.zoomListener.scaleBy(this.options.svgContainer.select("svg"), currentZoomLevel * 2);
});
这使缩放中心定位,我想在点击时将其居中并缩放。