我已经绘制了一个brush and zoom之类的图表 并且我想在鼠标位于y轴上并放大时为y轴添加另一个缩放事件(目前仅在x轴上进行缩放)
然后我添加一些类似这样的代码:
var zoomY = d3.zoom()
.scaleExtent([1, Infinity])
.translateExtent([[0, 0], [width, height]])
.extent([[0, 0], [width, height]])
.on("zoom", zoomedY);
function zoomedY(){
focus.select(".axis--y")
.call(yAxis.scale(d3.event.transform.rescaleY(y)));
//
y.domain(d3.event.transform.rescaleY(y).domain());
};
focus.select(".axis--y").call(zoomY);
如果我删除了d3.event.transform.rescaleY(yChart).domain()
,则会出现问题,当您按下鼠标并放大/缩小时,y轴会改变,但是图形不会改变。添加完之后,放大时可以,但无法放大(卡住并且页面向下滚动)。
我该如何解决此问题,或者有更好的解决方案?