gpt4 book ai didi

jquery - HighCharts/jQuery : chart. 重绘速度慢 - 可以提高速度吗?

转载 作者:行者123 更新时间:2023-12-01 04:10:44 24 4
gpt4 key购买 nike

刚刚编写了一个小代码来通过鼠标拖动动态更改 Pane 的高度。但动画很生涩。有什么解决方案可以使其更流畅吗?

似乎代码更新了图表详细信息并同时重新绘制,因此其中一个 Pane 的值比另一个 Pane 的值旧。

这个jsfiddle用于演示。

更新

尝试使用 $.when$.finish here但仍然无法工作:(

谢谢

代码如下:

$(function () {
$.getJSON('http://www.highcharts.com/samples/data/jsonp.php?filename=aapl-ohlcv.json&callback=?', function (data) {

// split the data set into ohlc and volume
var ohlc = [],
volume = [],
dataLength = data.length;

for (i = 0; i < dataLength; i++) {
ohlc.push([
data[i][0], // the date
data[i][3], // open
data[i][2], // high
data[i][3], // low
data[i][4] // close
]);

volume.push([
data[i][0], // the date
data[i][5] // the volume
])
}

// set the allowed units for data grouping
var groupingUnits = [
[
'week', // unit name
[1] // allowed multiples
],
[
'month', [1, 2, 3, 4, 6]]
];

// create the chart
$('#container').highcharts('StockChart', {
chart: {
animation: {
duration: 200
}
},

rangeSelector: {
selected: 1,
enabled: false
},

navigator: {
enabled: false
},
scrollbar: {
enabled: false
},
yAxis: [{
title: {
text: 'OHLC'
},
height: 200,
lineWidth: 2
}, {
title: {
text: 'Volume'
},
top: 200,
height: 100,
offset: 0,
lineWidth: 2
}],

series: [{
type: 'candlestick',
name: 'AAPL',
data: ohlc,
dataGrouping: {
units: groupingUnits
}
}, {
type: 'column',
name: 'Volume',
data: volume,
yAxis: 1,
dataGrouping: {
units: groupingUnits
}
}]
});
});
});
$('.rsh').draggable({
axis: 'y',
containment: 'parent',
helper: 'clone',
drag: function (event, ui) {
var chart=jQuery("#container").highcharts();
var _redraw = chart.redraw;
chart.redraw = function(){};
var height1 = ui.offset.top;
jQuery(".rsh").css("top", height1);

chart.yAxis[0].update({
'height': height1
}, false);
chart.yAxis[1].update({
'top': height1,
'height': 300-height1
}, false);
chart.redraw = _redraw;
chart.redraw();
}
});

最佳答案

只需禁用拖动时的动画,否则您将运行 1000 毫秒的动画,每次拖动 Pane 时都会开始新的动画。固定解决方案:http://jsfiddle.net/LTgQS/6/

$('.rsh').draggable({
axis: 'y',
containment: 'parent',
helper: 'clone',
drag: function (event, ui) {
var chart = jQuery("#container").highcharts();
var height1 = ui.offset.top;
jQuery(".rsh").css("top", height1);

chart.yAxis[0].update({
'height': height1
}, false);
chart.yAxis[1].update({
'top': height1,
'height': 300 - height1
}, false);
chart.redraw(false);
}
});

不要使用位于图表上方的 div(工具提示看起来很奇怪),而是尝试使用 Highcharts.Renderer 添加 path .

关于jquery - HighCharts/jQuery : chart. 重绘速度慢 - 可以提高速度吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20755279/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com