Центр масштабирования в точке щелчка - PullRequest
0 голосов
/ 25 февраля 2019

У меня есть SVG, и я хочу применить масштабирование при клике.На данный момент зум работает, но преобразование 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);
  });

Это делает масштабирование ориентированным на центр, я хочу центрироватьи увеличить его в точке щелчка.

...