mirror of
				https://github.com/billz/raspap-webgui.git
				synced 2025-03-01 10:31:47 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			145 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			HTML
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			145 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			HTML
		
	
	
		
			Executable File
		
	
	
	
	
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 | 
						|
<html>
 | 
						|
<head>
 | 
						|
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 | 
						|
	<title>Flot Examples: Selection and zooming</title>
 | 
						|
	<link href="../examples.css" rel="stylesheet" type="text/css">
 | 
						|
	<!--[if lte IE 8]><script language="javascript" type="text/javascript" src="../../excanvas.min.js"></script><![endif]-->
 | 
						|
	<script language="javascript" type="text/javascript" src="../../jquery.js"></script>
 | 
						|
	<script language="javascript" type="text/javascript" src="../../jquery.flot.js"></script>
 | 
						|
	<script language="javascript" type="text/javascript" src="../../jquery.flot.selection.js"></script>
 | 
						|
	<script type="text/javascript">
 | 
						|
 | 
						|
	$(function() {
 | 
						|
 | 
						|
		// setup plot
 | 
						|
 | 
						|
		function getData(x1, x2) {
 | 
						|
 | 
						|
			var d = [];
 | 
						|
			for (var i = 0; i <= 100; ++i) {
 | 
						|
				var x = x1 + i * (x2 - x1) / 100;
 | 
						|
				d.push([x, Math.sin(x * Math.sin(x))]);
 | 
						|
			}
 | 
						|
 | 
						|
			return [
 | 
						|
				{ label: "sin(x sin(x))", data: d }
 | 
						|
			];
 | 
						|
		}
 | 
						|
 | 
						|
		var options = {
 | 
						|
			legend: {
 | 
						|
				show: false
 | 
						|
			},
 | 
						|
			series: {
 | 
						|
				lines: {
 | 
						|
					show: true
 | 
						|
				},
 | 
						|
				points: {
 | 
						|
					show: true
 | 
						|
				}
 | 
						|
			},
 | 
						|
			yaxis: {
 | 
						|
				ticks: 10
 | 
						|
			},
 | 
						|
			selection: {
 | 
						|
				mode: "xy"
 | 
						|
			}
 | 
						|
		};
 | 
						|
 | 
						|
		var startData = getData(0, 3 * Math.PI);
 | 
						|
 | 
						|
		var plot = $.plot("#placeholder", startData, options);
 | 
						|
 | 
						|
		// Create the overview plot
 | 
						|
 | 
						|
		var overview = $.plot("#overview", startData, {
 | 
						|
			legend: {
 | 
						|
				show: false
 | 
						|
			},
 | 
						|
			series: {
 | 
						|
				lines: {
 | 
						|
					show: true,
 | 
						|
					lineWidth: 1
 | 
						|
				},
 | 
						|
				shadowSize: 0
 | 
						|
			},
 | 
						|
			xaxis: {
 | 
						|
				ticks: 4
 | 
						|
			},
 | 
						|
			yaxis: {
 | 
						|
				ticks: 3,
 | 
						|
				min: -2,
 | 
						|
				max: 2
 | 
						|
			},
 | 
						|
			grid: {
 | 
						|
				color: "#999"
 | 
						|
			},
 | 
						|
			selection: {
 | 
						|
				mode: "xy"
 | 
						|
			}
 | 
						|
		});
 | 
						|
 | 
						|
		// now connect the two
 | 
						|
 | 
						|
		$("#placeholder").bind("plotselected", function (event, ranges) {
 | 
						|
 | 
						|
			// clamp the zooming to prevent eternal zoom
 | 
						|
 | 
						|
			if (ranges.xaxis.to - ranges.xaxis.from < 0.00001) {
 | 
						|
				ranges.xaxis.to = ranges.xaxis.from + 0.00001;
 | 
						|
			}
 | 
						|
 | 
						|
			if (ranges.yaxis.to - ranges.yaxis.from < 0.00001) {
 | 
						|
				ranges.yaxis.to = ranges.yaxis.from + 0.00001;
 | 
						|
			}
 | 
						|
 | 
						|
			// do the zooming
 | 
						|
 | 
						|
			plot = $.plot("#placeholder", getData(ranges.xaxis.from, ranges.xaxis.to),
 | 
						|
				$.extend(true, {}, options, {
 | 
						|
					xaxis: { min: ranges.xaxis.from, max: ranges.xaxis.to },
 | 
						|
					yaxis: { min: ranges.yaxis.from, max: ranges.yaxis.to }
 | 
						|
				})
 | 
						|
			);
 | 
						|
 | 
						|
			// don't fire event on the overview to prevent eternal loop
 | 
						|
 | 
						|
			overview.setSelection(ranges, true);
 | 
						|
		});
 | 
						|
 | 
						|
		$("#overview").bind("plotselected", function (event, ranges) {
 | 
						|
			plot.setSelection(ranges);
 | 
						|
		});
 | 
						|
 | 
						|
		// Add the Flot version string to the footer
 | 
						|
 | 
						|
		$("#footer").prepend("Flot " + $.plot.version + " – ");
 | 
						|
	});
 | 
						|
 | 
						|
	</script>
 | 
						|
</head>
 | 
						|
<body>
 | 
						|
 | 
						|
	<div id="header">
 | 
						|
		<h2>Selection and zooming</h2>
 | 
						|
	</div>
 | 
						|
 | 
						|
	<div id="content">
 | 
						|
 | 
						|
		<div class="demo-container">
 | 
						|
			<div id="placeholder" class="demo-placeholder" style="float:left; width:650px;"></div>
 | 
						|
			<div id="overview" class="demo-placeholder" style="float:right;width:160px; height:125px;"></div>
 | 
						|
		</div>
 | 
						|
 | 
						|
		<p>Selection support makes it easy to construct flexible zooming schemes. With a few lines of code, the small overview plot to the right has been connected to the large plot. Try selecting a rectangle on either of them.</p>
 | 
						|
 | 
						|
	</div>
 | 
						|
 | 
						|
	<div id="footer">
 | 
						|
		Copyright © 2007 - 2014 IOLA and Ole Laursen
 | 
						|
	</div>
 | 
						|
 | 
						|
</body>
 | 
						|
</html>
 |