如何使用 highcharts 可拖动情节线作为视频时间线(反之亦然)
How can I use highcharts draggable plotline as video timeline (vice versa)
我对此感到沮丧。如何连接这两个元素?
带有可拖动绘图线和导出值的随机数据示例,您可以在此处找到 jsfiddle
$(function () {
function draggablePlotLine(axis, plotLineId) {
var clickX, clickY;
var getPlotLine = function () {
for (var i = 0; i < axis.plotLinesAndBands.length; i++) {
if (axis.plotLinesAndBands[i].id === plotLineId) {
return axis.plotLinesAndBands[i];
}
}
};
var getValue = function() {
var plotLine = getPlotLine();
var translation = axis.horiz ? plotLine.svgElem.translateX : plotLine.svgElem.translateY;
var new_value = axis.toValue(translation) - axis.toValue(0) + plotLine.options.value;
new_value = Math.max(axis.min, Math.min(axis.max, new_value));
return new_value;
};
var drag_start = function (e) {
$(document).bind({
'mousemove.line': drag_step,
'mouseup.line': drag_stop
感谢指教!
我认为像下面的演示中所做的那样,可能是实现您所描述内容的良好开端。
演示:https://jsfiddle.net/BlackLabel/s2r0u96p/
// render an empty chart
var chart = Highcharts.chart('container', {
series: [{
data: []
}]
});
我在评论中描述了一切,所以代码中发生的事情应该很清楚。接下来需要做的是添加拖放倒带器并使用以下命令更改视频值:https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/currentTime。如果您遇到麻烦,请重现您的尝试,我会尽力提供帮助。
API: https://api.highcharts.com/class-reference/Highcharts.Axis#addPlotLine
我对此感到沮丧。如何连接这两个元素?
带有可拖动绘图线和导出值的随机数据示例,您可以在此处找到 jsfiddle
$(function () {
function draggablePlotLine(axis, plotLineId) {
var clickX, clickY;
var getPlotLine = function () {
for (var i = 0; i < axis.plotLinesAndBands.length; i++) {
if (axis.plotLinesAndBands[i].id === plotLineId) {
return axis.plotLinesAndBands[i];
}
}
};
var getValue = function() {
var plotLine = getPlotLine();
var translation = axis.horiz ? plotLine.svgElem.translateX : plotLine.svgElem.translateY;
var new_value = axis.toValue(translation) - axis.toValue(0) + plotLine.options.value;
new_value = Math.max(axis.min, Math.min(axis.max, new_value));
return new_value;
};
var drag_start = function (e) {
$(document).bind({
'mousemove.line': drag_step,
'mouseup.line': drag_stop
感谢指教!
我认为像下面的演示中所做的那样,可能是实现您所描述内容的良好开端。
演示:https://jsfiddle.net/BlackLabel/s2r0u96p/
// render an empty chart
var chart = Highcharts.chart('container', {
series: [{
data: []
}]
});
我在评论中描述了一切,所以代码中发生的事情应该很清楚。接下来需要做的是添加拖放倒带器并使用以下命令更改视频值:https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/currentTime。如果您遇到麻烦,请重现您的尝试,我会尽力提供帮助。
API: https://api.highcharts.com/class-reference/Highcharts.Axis#addPlotLine