如何解决Highcharts Treemap系列动画无法禁用的问题?
解决Highcharts Treemap动画关不掉的问题
问题情况
你已经在TreemapSeries里设置了Animation = new Animation{Enabled = false},也通过chartOptions.PlotOptions.Series.Animation.Enabled = false禁用了全局系列动画,但页面运行后Treemap仍然存在动画效果。
解决办法
Treemap的层级渲染动画有专属配置项,需要单独在PlotOptions.Treemap中禁用,修改代码如下:
@{ var chartOptions = new Highcharts { Title = new Title { Text = "" }, Credits = new Credits { Enabled = false }, // 新增Treemap专属配置,禁用其动画 PlotOptions = new PlotOptions { Treemap = new TreemapPlotOptions { Animation = new Animation { Enabled = false } } }, Series = new List<Series> { new TreemapSeries { Animation = new Animation{Enabled = false}, // 保留系列级动画禁用 LayoutAlgorithm = TreemapSeriesLayoutAlgorithm.Squarified, AlternateStartingDirection = true, Levels = new List<TreemapSeriesLevels> { new TreemapSeriesLevels { Level = 1, LayoutAlgorithm = TreemapSeriesLevelsLayoutAlgorithm.Squarified, DataLabels = new TreemapSeriesDataLabels() { Enabled = true, Align = TreemapSeriesDataLabelsAlign.Left, VerticalAlign = TreemapSeriesDataLabelsVerticalAlign.Top } } }, Data = @ViewBag.resultGreen } } }; chartOptions.ID = "chart"; chartOptions.PlotOptions.Series.Animation.Enabled = false; // 保留全局系列动画禁用 var renderer = new HighchartsRenderer(chartOptions); } @Html.Raw(renderer.RenderHtml())
如果以上修改后仍有动画,可再添加全局动画禁用作为双重保障:
// 在chartOptions.ID = "chart";之后添加 chartOptions.Animation = new Animation { Enabled = false };
原因说明
Highcharts中不同类型图表有独立的配置分支,Treemap的层级布局动画由PlotOptions.Treemap.Animation单独控制,仅设置系列或全局Series的动画配置,无法覆盖Treemap的专属动画逻辑。
内容的提问来源于stack exchange,提问作者user3671271
相关产品推荐
相关产品推荐

