更改Highcharts主题(部分工作)
Changing a Highcharts theme (partially working)
我在更改高图的主题时遇到问题。我已经创建了一个数组来容纳所有主题,并试图通过change事件上的选择列表来更改它们。
var highcharts_theme = [];
/* Default theme */
highcharts_theme.push({});
/* Dark Blue theme */
highcharts_theme.push({
colors: ["#DDDF0D", "#55BF3B", "#DF5353", "#7798BF", "#aaeeee", "#ff0066", "#eeaaee",
"#55BF3B", "#DF5353", "#7798BF", "#aaeeee"],
chart: {
backgroundColor: {
linearGradient: [0, 0, 250, 500],
stops: [
[0, 'rgb(48, 48, 96)'],
[1, 'rgb(0, 0, 0)']
]
},
.... Shortened for brevity.....
我更改主题的代码是:
$('#theme-type').selectmenu({ width: 200 }).change(function (e) {
var themeIndex = parseInt($('#theme-type').val());
Highcharts.theme = highcharts_theme[themeIndex];
// Apply the theme
highchartsOptions = Highcharts.setOptions(Highcharts.theme);
});
我遇到的问题是,例如,如果我切换到"天空"主题,这很好,但随后切换到任何其他主题,天空背景将与主题的其他元素一起保留。
有人知道完全重置主题的正确方法吗?
感谢
每次设置主题时,它都会与现有主题合并,因此,新主题中不存在的任何选项都会从现有主题中选择。这可能并不总是可取的。
不幸的是,Highcharts没有提供返回到第一次加载时设置的默认值的选项。以下代码可用于获得的功能
// Make a copy of the defaults, call this line before any other setOptions call
var HCDefaults = $.extend(true, {}, Highcharts.getOptions(), {});
function ResetOptions() {
// Fortunately, Highcharts returns the reference to defaultOptions itself
// We can manipulate this and delete all the properties
var defaultOptions = Highcharts.getOptions();
for (var prop in defaultOptions) {
if (typeof defaultOptions[prop] !== 'function') delete defaultOptions[prop];
}
// Fall back to the defaults that we captured initially, this resets the theme
Highcharts.setOptions(HCDefaults);
}
重置主题后,应用一个新主题将如同应用的第一个主题一样。
演示@jsFiddle
如果删除所有颜色选项并重新加载Highcharts对象,它将默认返回到默认的基本主题。如果您将以下设置为null,则在重新加载后不应显示背景图像。
plotBackgroundImage: null
相关文章:
- Javascript:selenium Web驱动程序isDisplayed()不工作
- jQuery UI自动完成突然停止工作
- AngularJS UI路由器不能像ng路由器那样工作
- HTML5音频加载和播放获胜'我不能在iPad上工作
- Highcharts在jsfiddle上工作,但在现场失败
- 具有相同代码/数据集的Highcharts代码在PHP中工作,但在JSfiddle中不起作用
- 更改Highcharts主题(部分工作)
- Highcharts列w/下钻在Rails 4中不工作
- Highcharts -更新列图与setData()不工作
- Highcharts上的FillColor工作方式不同
- Highcharts获得tsvg plotopoptions系列.lineWidth不工作
- Highcharts(Highcharts ng)与ng重复工作,但需要从属性传递每个图表的数据
- Highcharts plotBands不能与setextrees函数一起工作
- HighCharts - JQuery -简单的例子不工作
- Highcharts不能在网站上工作
- 系列在HighCharts中不工作
- Highcharts SetData只工作一次
- HighCharts:局部变量在"data:"中不工作
- HighCharts X轴日期不工作(00:00)
- Highcharts不是通过AJAX工作的