Statistics
| Revision:

root / hci / trunk / eneraptor-web-app / web-app / js / flot / examples / navigate.html @ 11

History | View | Annotate | Download (3.98 KB)

1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2
<html>
3
 <head>
4
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
5
    <title>Flot Examples</title>
6
    <link href="layout.css" rel="stylesheet" type="text/css"></link>
7
    <!--[if IE]><script language="javascript" type="text/javascript" src="../excanvas.min.js"></script><![endif]-->
8
    <script language="javascript" type="text/javascript" src="../jquery.js"></script>
9
    <script language="javascript" type="text/javascript" src="../jquery.flot.js"></script>
10
    <script language="javascript" type="text/javascript" src="../jquery.flot.navigate.js"></script>
11
    <style>
12
    #placeholder .button {
13
        position: absolute;
14
        cursor: pointer;
15
    }
16
    #placeholder div.button {
17
        font-size: smaller;
18
        color: #999;
19
        background-color: #eee;
20
        padding: 2px;
21
    }
22
    .message {
23
        padding-left: 50px;
24
        font-size: smaller;
25
    }
26
    </style>
27
 </head>
28
 <body>
29
    <h1>Flot Examples</h1>
30

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

    
33
    <p class="message"></p>
34

    
35
    <p>With the navigate plugin it is easy to add panning and zooming.
36
    Drag to pan, double click to zoom (or use the mouse scrollwheel).</p>
37

    
38
    <p>The plugin fires events (useful for synchronizing several
39
    plots) and adds a couple of public methods so you can easily build
40
    a little user interface around it, like the little buttons at the
41
    top right in the plot.</p>
42
    
43

    
44
<script id="source" language="javascript" type="text/javascript">
45
$(function () {
46
    // generate data set from a parametric function with a fractal
47
    // look
48
    function sumf(f, t, m) {
49
        var res = 0;
50
        for (var i = 1; i < m; ++i)
51
            res += f(i * i * t) / (i * i);
52
        return res;
53
    }
54
    
55
    var d1 = [];
56
    for (var t = 0; t <= 2 * Math.PI; t += 0.01)
57
        d1.push([sumf(Math.cos, t, 10), sumf(Math.sin, t, 10)]);
58
    var data = [ d1 ];
59

60
    
61
    var placeholder = $("#placeholder");
62
    var options = {
63
        series: { lines: { show: true }, shadowSize: 0 },
64
        xaxis: { zoomRange: [0.1, 10], panRange: [-10, 10] },
65
        yaxis: { zoomRange: [0.1, 10], panRange: [-10, 10] },
66
        zoom: {
67
            interactive: true
68
        },
69
        pan: {
70
            interactive: true
71
        }
72
    };
73

74
    var plot = $.plot(placeholder, data, options);
75

76
    // show pan/zoom messages to illustrate events 
77
    placeholder.bind('plotpan', function (event, plot) {
78
        var axes = plot.getAxes();
79
        $(".message").html("Panning to x: "  + axes.xaxis.min.toFixed(2)
80
                           + " &ndash; " + axes.xaxis.max.toFixed(2)
81
                           + " and y: " + axes.yaxis.min.toFixed(2)
82
                           + " &ndash; " + axes.yaxis.max.toFixed(2));
83
    });
84

85
    placeholder.bind('plotzoom', function (event, plot) {
86
        var axes = plot.getAxes();
87
        $(".message").html("Zooming to x: "  + axes.xaxis.min.toFixed(2)
88
                           + " &ndash; " + axes.xaxis.max.toFixed(2)
89
                           + " and y: " + axes.yaxis.min.toFixed(2)
90
                           + " &ndash; " + axes.yaxis.max.toFixed(2));
91
    });
92

93
    // add zoom out button 
94
    $('<div class="button" style="right:20px;top:20px">zoom out</div>').appendTo(placeholder).click(function (e) {
95
        e.preventDefault();
96
        plot.zoomOut();
97
    });
98

99
    // and add panning buttons
100
    
101
    // little helper for taking the repetitive work out of placing
102
    // panning arrows
103
    function addArrow(dir, right, top, offset) {
104
        $('<img class="button" src="arrow-' + dir + '.gif" style="right:' + right + 'px;top:' + top + 'px">').appendTo(placeholder).click(function (e) {
105
            e.preventDefault();
106
            plot.pan(offset);
107
        });
108
    }
109

110
    addArrow('left', 55, 60, { left: -100 });
111
    addArrow('right', 25, 60, { left: 100 });
112
    addArrow('up', 40, 45, { top: -100 });
113
    addArrow('down', 40, 75, { top: 100 });
114
});
115
</script>
116

    
117
 </body>
118
</html>