diff --git a/src/chart/pie/PieView.js b/src/chart/pie/PieView.js index dc9f635f3c..2d9d609703 100644 --- a/src/chart/pie/PieView.js +++ b/src/chart/pie/PieView.js @@ -180,31 +180,36 @@ piePieceProto.updateData = function (data, idx, firstCreate) { var withAnimation = !firstCreate && animationTypeUpdate === 'transition'; this._updateLabel(data, idx, withAnimation); - this.highDownOnUpdate = (itemModel.get('hoverAnimation') && seriesModel.isAnimationEnabled()) + this.highDownOnUpdate = !seriesModel.get('silent') ? function (fromState, toState) { + const hasAnimation = seriesModel.isAnimationEnabled() && itemModel.get('hoverAnimation'); if (toState === 'emphasis') { labelLine.ignore = labelLine.hoverIgnore; labelText.ignore = labelText.hoverIgnore; // Sector may has animation of updating data. Force to move to the last frame // Or it may stopped on the wrong shape - sector.stopAnimation(true); - sector.animateTo({ - shape: { - r: layout.r + seriesModel.get('hoverOffset') - } - }, 300, 'elasticOut'); + if (hasAnimation) { + sector.stopAnimation(true); + sector.animateTo({ + shape: { + r: layout.r + seriesModel.get('hoverOffset') + } + }, 300, 'elasticOut'); + } } else { labelLine.ignore = labelLine.normalIgnore; labelText.ignore = labelText.normalIgnore; - sector.stopAnimation(true); - sector.animateTo({ - shape: { - r: layout.r - } - }, 300, 'elasticOut'); + if (hasAnimation) { + sector.stopAnimation(true); + sector.animateTo({ + shape: { + r: layout.r + } + }, 300, 'elasticOut'); + } } } : null; diff --git a/test/pie-animation.html b/test/pie-animation.html index 679b50bbb8..5c0cec6d8f 100644 --- a/test/pie-animation.html +++ b/test/pie-animation.html @@ -31,7 +31,8 @@ html, body, #main1, - #main2 { + #main2, + #main3 { width: 100%; height: 250px; margin: 0; @@ -57,6 +58,9 @@
+