L.Map.setZoom
打电话
L.Map.setView
那叫
L.Map._animateZoomIfClose
.
如果
map._animatingZoom
如果为true,则任何缩放都将停止。
地图_设置动画缩放
像查找缩放动画一样工作:
-
检查位置
L.Map.animateZoomIfClose(地图_动画缩放关闭)
如果
true
停止缩放其他呼叫
L.Map._animateZoom
.
-
设置为
真实的
在
L.地图_动画缩放
并启动css转换。
-
设置为
false
在
L.Map._onZoomTransitionEnd
在css转换结束时。
为什么是这样?我认为这是因为中断css转换工作很困难。
因此,如果您要禁用任何css转换和转换,您的代码必须正常工作。您也可以添加自己的扩展:如果
map._animatingZoom === true
然后将你的动作放入数组,当
map._catchTransitionEnd
称为process this,并将您的操作从数组和进程中转移:
if (L.DomUtil.TRANSITION) {
L.Map.addInitHook(function () {
L.DomEvent.on(this._mapPane, L.DomUtil.TRANSITION_END, function () {
var zoom = this._zoomActions.shift();
if (zoom !== undefined) {
this.setZoom(zoom);
}
}, this);
});
}
L.Map.include(!L.DomUtil.TRANSITION ? {} : {
_zoomActions: [],
queueZoom: function (zoom) {
if (map._animatingZoom) {
this._zoomActions.push(zoom);
} else {
this.setZoom(zoom);
}
}
});