Files
openlayers/master/examples/test_Slider.html
Éric Lemoine 5d14b9e2d4 Updated
2013-02-20 10:38:25 +01:00

221 lines
9.6 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
<title>Dojo Slider Widget Demo</title>
<style type="text/css">
@import "../../themes/claro/document.css";
@import "../css/dijitTests.css";
@import "../../../util/doh/robot/robot.css";
#slider2 .dijitButtonNode {
width:12px;
height:12px;
border: none;
font-size:11px;
padding:0;
}
</style>
<!-- required: the default dijit theme: -->
<link id="themeStyles" rel="stylesheet" href="../../../dijit/themes/claro/claro.css"/>
<!-- required: dojo.js -->
<script type="text/javascript" src="../../../dojo/dojo.js"
data-dojo-config="isDebug: true, parseOnLoad: true"></script>
<!-- only needed for alternate theme testing: -->
<script type="text/javascript" src="../_testCommon.js"></script>
<script type="text/javascript">
dojo.require("dijit.dijit"); // optimize: load dijit layer
dojo.require("dijit.form.HorizontalSlider");
dojo.require("dijit.form.VerticalSlider");
dojo.require("dijit.form.HorizontalRule");
dojo.require("dijit.form.VerticalRule");
dojo.require("dijit.form.HorizontalRuleLabels");
dojo.require("dijit.form.VerticalRuleLabels");
dojo.require("dijit.form.Button");
dojo.require("dojo.parser"); // scan page for widgets
// programatic vertical slider and labels
var programaticExample = function(){
var node = dojo.byId("programaticSlider");
// or var node = dojo.body().appendChild(document.createElement('div'));
// our rules are to be children of the slider
var rulesNode = document.createElement('div');
node.appendChild(rulesNode);
// setup the rules
var sliderRules = new dijit.form.VerticalRule({
count:11,
style:{width:"5px"}
},rulesNode);
// and setup the slider
var theSlider = new dijit.form.VerticalSlider({
value:1400,
name:"programaticSlider",
slideDuration:0,
onChange:function(val){ dojo.byId('sliderProgInput').value=val; },
style:{height:"165px"},
minimum:1000,
maximum:3000,
discreteValues:11,
intermediateChanges:"true",
showButtons:"true"
},node);
// and start them both
theSlider.startup();
sliderRules.startup();
};
dojo.ready(programaticExample);
</script>
</head>
<body class="claro">
<h1 class="testTitle">Slider</h1>
Also try using the arrow keys, buttons, or clicking on the progress bar to move the slider.
<br>
<!-- to test form submission, you'll need to create an action handler similar to
http://www.utexas.edu/teamweb/cgi-bin/generic.cgi -->
<form id="form1" action="" name="example" method="post">
<br>initial value=10, min=0, max=100, pageIncrement=100, onChange event triggers input box value change immediately<br>
<strong>Horizontal Slider Example</strong>
<div id="slider1" data-dojo-type="dijit.form.HorizontalSlider" data-dojo-props='name:"horizontal1",
onChange:function(val){ dojo.byId("slider1input").value=dojo.number.format(val/100,{places:1,pattern:"#%"}); },
value:10,
maximum:100,
minimum:0,
pageIncrement:100,
showButtons:true,
intermediateChanges:true,
slideDuration:500,
style:{width:"50%", height:"20px"}
'>
<ol data-dojo-type="dijit.form.HorizontalRuleLabels" data-dojo-props='container:"topDecoration", style:{height:"1.2em",fontSize:"75%"}, count:6, numericMargin:1'></ol>
<div data-dojo-type="dijit.form.HorizontalRule" data-dojo-props='container:"topDecoration", count:6, style:{height:"5px"}'></div>
<div data-dojo-type="dijit.form.HorizontalRule" data-dojo-props='container:"bottomDecoration", count:5, style:{height:"5px"}'></div>
<ol data-dojo-type="dijit.form.HorizontalRuleLabels" data-dojo-props='container:"bottomDecoration", style:{height:"1em",fontSize:"75%"}'>
<li>lowest</li>
<li>normal</li>
<li>highest</li>
</ol>
</div>
Slider1 Value:<input readonly id="slider1input" size="4" value="10.0%"/>
<br>
<button id="disableButton" data-dojo-type="dijit.form.Button" data-dojo-props='onClick:function(){ dijit.byId("slider1").set("disabled", true);dijit.byId("disableButton").set("disabled",true);dijit.byId("enableButton").set("disabled",false); }'>Disable previous slider</button>
<button id="enableButton" data-dojo-type="dijit.form.Button" data-dojo-props='onClick:function(){ dijit.byId("slider1").set("disabled",false);dijit.byId("disableButton").set("disabled",false);dijit.byId("enableButton").set("disabled", true); }, disabled:true'>Enable previous slider</button>
<br>
<br>initial value=10, min=0, max=100, onChange event triggers input box value change when you mouse up or tab away<br>
<strong>Vertical Slider Example</strong>
<div id="slider2" data-dojo-type="dijit.form.VerticalSlider" data-dojo-props='name:"vertical1",
onChange:function(val){ dojo.byId("slider2input").value = val; },
value:10,
maximum:100,
minimum:0,
discreteValues:11,
style:{height:"300px"}
'>
<ol data-dojo-type="dijit.form.VerticalRuleLabels" data-dojo-props='container:"leftDecoration", style:{width:"2em"}, labelStyle:"right:0px;"'>
<li>0</li>
<li>100</li>
</ol>
<div data-dojo-type="dijit.form.VerticalRule" data-dojo-props='container:"leftDecoration", count:11, style:{width:"5px"}, ruleStyle:"border-color: #888"'></div>
<div data-dojo-type="dijit.form.VerticalRule" data-dojo-props='container:"rightDecoration", count:11, style:{width:"5px"}, ruleStyle:"border-color: #888"'></div>
<ol data-dojo-type="dijit.form.VerticalRuleLabels" data-dojo-props='container:"rightDecoration", style:{width:"2em"}, count:6, numericMargin:1, maximum:100, constraints:{pattern:"#"}'></ol>
</div>
Slider2 Value:<input readonly id="slider2input" size="3" value="10"/>
<h1>Fancy HTML labels (no slide animation):</h1>
<div id="slider3" data-dojo-type="dijit.form.HorizontalSlider" data-dojo-props='name:"horizontal2",
title:"Fancy HTML Labels",
minimum:1,
value:2,
maximum:3,
discreteValues:3,
showButtons:false,
intermediateChanges:true,
slideDuration:0,
style:"width:300px; height: 40px;"
'>
<div data-dojo-type="dijit.form.HorizontalRule" data-dojo-props='container:"bottomDecoration", count:3, style:{height:"5px"}'></div>
<ol data-dojo-type="dijit.form.HorizontalRuleLabels" data-dojo-props='container:"bottomDecoration", style:{height:"1em", fontSize:"75%"}'>
<li><img width=10 height=10 src="../images/note.gif"/><br><span style="font-size: small">small</span></li>
<li><img width=15 height=15 src="../images/note.gif"/><br><span style="font-size: medium">medium</span></li>
<li><img width=20 height=20 src="../images/note.gif"/><br><span style="font-size: large">large</span></li>
</ol>
</div>
<p></p><h1>Standalone ruler example:</h1><p></p>
<div style="width:2in;border-top:1px solid black;">
<div data-dojo-type="dijit.form.HorizontalRule" data-dojo-props='count:17, style:{height:".4em"}'></div>
<div data-dojo-type="dijit.form.HorizontalRule" data-dojo-props='count:9, style:{height:".4em"}'></div>
<div data-dojo-type="dijit.form.HorizontalRule" data-dojo-props='count:5, style:{height:".4em"}'></div>
<div data-dojo-type="dijit.form.HorizontalRule" data-dojo-props='count:3, style:{height:".4em"}'></div>
<ol data-dojo-type="dijit.form.HorizontalRuleLabels" data-dojo-props='labelStyle:"font-style:monospace;fontSize:.7em;margin:-1em 0px 0px -.35em;"'>
<li></li>
<li>1</li>
<li>2</li>
</ol>
</div>
<h1>horizontal, with buttons, disabled (to show styling):</h1>
<div id="sliderH2" data-dojo-type="dijit.form.HorizontalSlider" data-dojo-props='name:"horizontalH2",
onChange:function(val){ dojo.byId("slider1input").value = val; },
value:10,
maximum:100,
minimum:0,
disabled:true,
showButtons:true,
intermediateChanges:true,
style:{width:"50%", height:"20px"}
'>
<ol data-dojo-type="dijit.form.HorizontalRuleLabels" data-dojo-props='container:"topDecoration", style:{height:"1.2em", fontSize:"75%"}, count:7, constraints:{pattern:"#.00%"}'></ol>
<div data-dojo-type="dijit.form.HorizontalRule" data-dojo-props='container:"topDecoration", count:7, style:"height:5px;"'></div>
<div data-dojo-type="dijit.form.HorizontalRule" data-dojo-props='container:"bottomDecoration", count:5, style:"height:5px;"'></div>
<ol data-dojo-type="dijit.form.HorizontalRuleLabels" data-dojo-props='container:"bottomDecoration", style:{height:"1em", fontSize:"75%"}'>
<li>lowest</li>
<li>normal</li>
<li>highest</li>
</ol>
</div>
<h2>Completely Programatic VerticalSlider and VerticalRule</h2>
<h3>min:1000, max:3000, 11 discrete values, no animation</h3>
<div id="programaticSlider"></div>
Programmatic Value:<input readonly id="sliderProgInput" size="5" value="1400"/>
<script>
// so robot can get to it easily
document.displayData=function(){
var f = document.getElementById("form1");
var s = "";
for(var i = 0; i < f.elements.length; i++){
var elem = f.elements[i];
if(elem.nodeName.toLowerCase() == "button" || elem.type=="submit" || elem.type=="button") { continue; }
s += elem.name + ": " + elem.value + "\n";
}
return s;
}
</script>
<div>
<button name="button" onclick="alert(displayData()); return false;">view data</button>
<input type="submit" name="submit" />
</div>
</form>
</body>
</html>