Fix stuttering of pan animation in some cases
This commit is contained in:
parent
8ad4f12cb9
commit
194425d24b
2
dist/leaflet.css
vendored
2
dist/leaflet.css
vendored
@ -239,7 +239,7 @@ a.leaflet-active {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.leaflet-zoom-anim .leaflet-tile {
|
||||
.leaflet-zoom-anim .leaflet-tile, .leaflet-pan-anim .leaflet-tile {
|
||||
-webkit-transition: none;
|
||||
-moz-transition: none;
|
||||
-o-transition: none;
|
||||
|
@ -65,8 +65,8 @@ L.Transition = L.Transition.extend({
|
||||
this.fire('start');
|
||||
|
||||
if (L.Transition.NATIVE) {
|
||||
//clearInterval(this._timer);
|
||||
//this._timer = setInterval(this._onFakeStep, this.options.fakeStepInterval);
|
||||
clearInterval(this._timer);
|
||||
this._timer = setInterval(this._onFakeStep, this.options.fakeStepInterval);
|
||||
} else {
|
||||
this._onTransitionEnd();
|
||||
}
|
||||
@ -88,7 +88,7 @@ L.Transition = L.Transition.extend({
|
||||
this.fire('step');
|
||||
},
|
||||
|
||||
_onTransitionEnd: function () {
|
||||
_onTransitionEnd: function (e) {
|
||||
if (this._inProgress) {
|
||||
this._inProgress = false;
|
||||
clearInterval(this._timer);
|
||||
@ -96,7 +96,10 @@ L.Transition = L.Transition.extend({
|
||||
this._el.style[L.Transition.PROPERTY] = 'none';
|
||||
|
||||
this.fire('step');
|
||||
this.fire('end');
|
||||
|
||||
if (e instanceof window.Event) {
|
||||
this.fire('end');
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
@ -32,10 +32,9 @@ L.Map.include(!(L.Transition && L.Transition.implemented()) ? {} : {
|
||||
}
|
||||
|
||||
if (!this._panTransition) {
|
||||
|
||||
this._panTransition = new L.Transition(this._mapPane);
|
||||
|
||||
this._panTransition.on('step', this._onPanTransitionStep, this);
|
||||
//this._panTransition.on('step', this._onPanTransitionStep, this);
|
||||
this._panTransition.on('end', this._onPanTransitionEnd, this);
|
||||
}
|
||||
|
||||
@ -43,6 +42,8 @@ L.Map.include(!(L.Transition && L.Transition.implemented()) ? {} : {
|
||||
|
||||
this.fire('movestart');
|
||||
|
||||
this._mapPane.className += ' leaflet-pan-anim';
|
||||
|
||||
this._panTransition.run({
|
||||
position: L.DomUtil.getPosition(this._mapPane).subtract(offset)
|
||||
});
|
||||
@ -55,6 +56,7 @@ L.Map.include(!(L.Transition && L.Transition.implemented()) ? {} : {
|
||||
},
|
||||
|
||||
_onPanTransitionEnd: function () {
|
||||
this._mapPane.className = this._mapPane.className.replace(/ leaflet-pan-anim/g, '');
|
||||
this.fire('moveend');
|
||||
},
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user