我需要手动进行过渡,因为我知道d3缩放不会响应我的手动缩放。因此,在手动缩放后,当我使用鼠标拖动或滚动鼠标时,d3缩放将从先前位置(平移)和缩放值开始事件,这对我的地图来说是可怕的。所以我需要在手动缩放后设置缩放平移和比例,我可以设置缩放比例,但我不知道要设置缩放平移的值。
g.transition()
.duration(1000)
.attr("transform", "translate(" + (window_width / 2 + translateX) + "," + (window_height / 2 ) + ")scale(" + zoomLevel + ")translate(" + (-x + 10) + "," + -y + ")")
.each("end", function () {
if (zoomLevel > 1) {
$("#zoom_control").show();
showCenteredTextInCircle();
// zoom.scale(zoomLevel);
// zoom.translate([x*zoomLevel, y*zoomLevel]);
}
});
这段代码参考自d3-zoom-example
有没有人知道在我手动过渡后正确的缩放平移值?谢谢!!!
zoom.translate()
返回当前的翻译向量,这可能与位置混淆。 - Ricardozoom.scale()
е’Ңzoom.translate()
зҡ„з»“жһңжҳҜzoom.scale дёҚжҳҜдёҖдёӘеҮҪж•°
гҖӮ еҰӮжһңжҲ‘и®°еҪ•zoom
пјҢжҲ‘еҫ—еҲ°зҡ„жҳҜеҢ…еҗ«иҜёеҰӮclickDistance
гҖҒconstrain
гҖҒduration
зӯүж–№жі•зҡ„function zoom(selection)
гҖӮ - Merczoom.scale()
和zoom.translate()
的结果是zoom.scale 不是一个函数
。 如果我记录zoom
,我得到的是function zoom(selection)
,其中包含了clickDistance
、constrain
、duration
等方法。 - undefined