C
Cave Johnson
Gast
Hi,
ich habe ein Flot-Chart, welches Säulen und einzelne Datenpunkte besitzt:
Anhang anzeigen 271067
Jetzt möchte ich gerne, dass Tooltipps angezeigt werden, aber nur bei den Datenpunkten, nicht bei den Säulen. Hat jemand eine Idee, wie ich das machen kann?
Irgendwie müsste ich im Code in Zeile 58 feststellen, ob das 'item' eine Säule oder ein Punkt ist. Vielleicht irgendwie mit 'width'? Das wäre bei den Punkten ja nur 1, bei den Säulen mehr.
Kenne mich mit JS leider nicht wirklich aus.
ich habe ein Flot-Chart, welches Säulen und einzelne Datenpunkte besitzt:
Jetzt möchte ich gerne, dass Tooltipps angezeigt werden, aber nur bei den Datenpunkten, nicht bei den Säulen. Hat jemand eine Idee, wie ich das machen kann?
Irgendwie müsste ich im Code in Zeile 58 feststellen, ob das 'item' eine Säule oder ein Punkt ist. Vielleicht irgendwie mit 'width'? Das wäre bei den Punkten ja nur 1, bei den Säulen mehr.
Kenne mich mit JS leider nicht wirklich aus.
PHP:
<script type="text/javascript">
$(function () {
var sin = [], cos = [];
for (var i = 0; i < 14; i += 0.5) {
sin.push([i, Math.sin(i)]);
cos.push([i, Math.cos(i)]);
}
var stack = 0, bars = true, lines = false, steps = false;
var plot = $.plot($("#placeholder<?php echo $chartid; ?>"),
[{
data: [ [0.3, 30, 10], [2.3, 80, 40], [3.3, 10, 50] ],
label: 'data1',
bars: { show: bars, barWidth: 0.4 },
color: '#28b'
},{
data: [ [0.5, 20], [2.5, 60], [3.5, 45] ],
label: 'data2',
lines: { show: false },
points: { symbol: "cross", show: true },
color: '#333'
}],{
series: {
},
grid: { hoverable: true, clickable: false },
xaxis: { ticks: xticks, min: 0, max: 24 },
yaxis: { ticks: 10, min: 0, max: 90 }
});
function xticks() {
var res = [];
for(x = 0; x <= 23; x++) {
res.push(x);
}
return res;
}
function showTooltip(x, y, conts) {
$('<div id="tooltip">' + contents + '</div>').css( {
position: 'absolute',
'text-align': 'center',
display: 'none',
top: y - 50,
left: x - 45,
border: '2px solid #069',
'border-radius': '3px',
padding: '3px',
'font-family': 'Arial',
'font-size': '12px',
'background-color': '#fff',
'z-index': '1001',
opacity: 0.80
}).appendTo("body").fadeIn(200);
}
var previousPoint = null;
$("#placeholder<?php echo $chartid; ?>").bind("plothover", function (event, pos, item) {
if (item) {
if (previousPoint != item.dataIndex) {
previousPoint = item.dataIndex;
$("#tooltip").remove();
var x = item.datapoint[0].toFixed(2),
y = item.datapoint[1].toFixed(2);
showTooltip(item.pageX, item.pageY,
Math.round(y, 0));
}
}
else {
$("#tooltip").remove();
previousPoint = null;
}
});
$("#placeholder<?php echo $chartid; ?>").bind("plotclick", function (event, pos, item) {
if (item) {
plot.highlight(item.series, item.datapoint);
}
});
});
</script>
Zuletzt bearbeitet: