interacting.html 2.98 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Flot Examples</title>
    <link href="layout.css" rel="stylesheet" type="text/css"></link>
    <!--[if IE]><script language="javascript" type="text/javascript" src="../excanvas.pack.js"></script><![endif]-->
    <script language="javascript" type="text/javascript" src="../jquery.js"></script>
    <script language="javascript" type="text/javascript" src="../jquery.flot.js"></script>
 </head>
    <body>
    <h1>Flot Examples</h1>

    <div id="placeholder" style="width:600px;height:300px"></div>

16
    <p>One of the goals of Flot is to support user interactions intelligently.
17 18 19 20
    Try hovering over the graph above and clicking on the points. A
    tooltip is easy to build with a bit of jQuery code and the data returned
    from the plot. Note that support for highlighting the points is
    currently missing.</p>
21

22 23 24
    <p id="clickdata"></p>

    <p id="hoverdata" style="display:none">Mouse hovers at
25
    (<span id="x"></span>, <span id="y"></span>).</p>
26 27 28

<script id="source" language="javascript" type="text/javascript">
$(function () {
29 30 31 32 33 34 35 36 37 38 39
    var sin = [], cos = [];
    for (var i = 0; i < 14; i += 0.5) {
        sin.push([i, Math.sin(i)]);
        cos.push([i, Math.cos(i)]);
    }

    $.plot($("#placeholder"),
           [ { data: sin, label: "sin(x)"}, { data: cos, label: "cos(x)" } ],
           { lines: { show: true },
             points: { show: true },
             grid: { hoverable: true, clickable: true } });
40

41 42 43 44 45 46 47 48 49 50 51 52 53 54
    function showTooltip(x, y, contents) {
        $('<div id="tooltip">' + contents + '</div>').css( {
            position: 'absolute',
            display: 'none',
            top: y + 5,
            left: x + 5,
            border: '1 px solid #fdd',
            padding: '2px',
            'background-color': '#fee',
            opacity: 0.80
        }).appendTo("body").fadeIn(200);
    }

    var previousPoint = null;
55 56 57 58
    $("#placeholder").bind("plothover", function (event, pos, item) {
        $("#x").text(pos.x.toFixed(2));
        $("#y").text(pos.y.toFixed(2));
        $("#hoverdata").show();
59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75

        if (item) {
            if (previousPoint != item.datapoint) {
                previousPoint = item.datapoint;
                
                $("#tooltip").remove();
                var x = item.datapoint[0].toFixed(2),
                    y = item.datapoint[1].toFixed(2);
                
                showTooltip(item.pageX, item.pageY,
                            item.series.label + " of " + x + " = " + y);
            }
        }
        else {
            $("#tooltip").remove();
            previousPoint = null;            
        }
76
    });
77

78 79
    $("#placeholder").bind("plotclick", function (event, pos, item) {
        if (item) {
80
            $("#clickdata").text("You clicked point " + item.dataIndex + " in " + item.series.label);
81
        }
82 83 84 85 86 87
    });
});
</script>

 </body>
</html>