]> git.pond.sub.org Git - eow/blobdiff - static/dojo-release-1.1.1/dojox/fx/tests/example_easingChart2D.html
add Dojo 1.1.1
[eow] / static / dojo-release-1.1.1 / dojox / fx / tests / example_easingChart2D.html
diff --git a/static/dojo-release-1.1.1/dojox/fx/tests/example_easingChart2D.html b/static/dojo-release-1.1.1/dojox/fx/tests/example_easingChart2D.html
new file mode 100644 (file)
index 0000000..fd0d171
--- /dev/null
@@ -0,0 +1,147 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+       "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+       <title>visualising dojo._Animation.easing via dojox.charting</title>
+
+       <link rel="stylesheet" type="text/css" media="screen"
+               href="../../../dojo/resources/dojo.css">
+
+       <link rel="stylesheet" type="text/css" media="screen"
+               href="../../../dijit/themes/tundra/tundra.css">
+
+       <style type="text/css">
+       .box { padding:14px; 
+               border:1px solid #b7b7b7;
+               -moz-border-radius:8pt;
+       }
+       </style>
+       
+       <script type="text/javascript" djConfig="isDebug:false, parseOnLoad: true"
+               src="../../../dojo/dojo.js"></script>
+
+       <script type="text/javascript">
+               // one simple theme, and the charting engine:
+               dojo.require("dojox.charting.Chart2D");
+               // and easing functions:
+               dojo.require("dojox.fx.easing"); 
+
+               var d=0;
+               var masterData = {};
+               var makeSeries = function(/* string */str, /* Function */ func){
+                       // make some data by running a 2sec animation with an easing function
+                       // and adding it to the chart
+                       var seriesData = [];
+                       if(str in masterData){
+                               seriesData=masterData[str];
+                       }
+
+                       if(!seriesData.length){
+                               var func = func || dojox.fx.easing[str];
+                               func = (dojo.isFunction(func) ? func : dojo._defaultEasing);
+
+                               for(var i=0; i<=120; i++){
+                                       var pct = i/120;
+                                       seriesData.push({ y: 30 * func(pct), x: (pct) * 30});
+                               }
+                               if(!str.match(/^dynSeries/)){
+                                       masterData[str] = seriesData;
+                               }
+                               chart.addSeries(str,
+                                       seriesData,
+                                       { stroke: { color: "black", width: 0 }, fill: "rgba(30,0,255,0.10)" }
+                               ).render();
+                       }else{
+                               chart.updateSeries(str, seriesData).render();
+                       }
+               };
+
+               var removeSeries = function(str){
+                       chart.updateSeries(str, []);
+                       if(!clearAll){ chart.render(); }
+               };
+
+               var toggleChart = function(widget, str){
+                       if(!chart) return;
+                       if(widget.checked){
+                               makeSeries(str);
+                       }else{
+                               removeSeries(str);
+                       }
+               }
+
+               var chart;
+               var clearAll=false;
+               
+               dojo.addOnLoad(function(){
+                               
+                       // setup our chart
+                       chart = new dojox.charting.Chart2D("easingChart");
+                       chart.addAxis("x", {
+                               fixLower: "major",
+                               fixUpper: "major",
+                               majorTickStep: 10,
+                               minorTickStep: 1,
+                               minorLabels: false,
+                               htmlLabels: false
+                       });
+                       chart.addAxis("y", {
+                               vertical: true,
+                               fixLower: "major",
+                               fixUpper: "major",
+                               majorTickStep: 10,
+                               minorTickStep: 1,
+                               htmlLabels: false
+                       });
+                       chart.addPlot("default", {type: "Areas"});
+               });
+               
+               var opt;
+               dojo.addOnLoad(function(){
+                       
+                       var c = dojo.query(".clone")[0];        
+                       opt = dojo.byId("select");
+                       
+                       for(var i in dojox.fx.easing){
+                               var n = opt.appendChild(dojo.clone(c));
+                               n.value = n.innerHTML = i
+                               // n.innerHTML = i;
+                       }
+               
+                   dojo.connect(opt,"onchange",function(e){
+                               dojo.query("option",opt)
+                                    // we only want "selected" nodes
+                                   .filter(function(n){ return n.selected; })
+                                        // yay, here they are:
+                                       .forEach(function(n){
+                                               console.log(n);
+                                   });
+                               makeSeries(opt.value,dojox.fx.easing[opt.value]);
+                       });
+                               
+                       dojo.query(".box").connect("onclick",function(e){
+                               console.log(opt.value,dojox.fx.easing[opt.value]);      
+                       });
+                       
+                       makeSeries("visible",dojo._defaultEasing);      
+                               
+               });
+               
+       </script>
+</head>
+<body class="tundra" style="padding:20px">
+
+       <h1>dojox.fx.easing</h1>
+       
+       <p>this chart shows time (x axis) vs. position (y axis) for a movement from 0px to 30px modified by easing functions</p>
+
+               <select id="select" multiple="true" size="7" name="easing">
+                               <option class="clone" value="dojo._defaultEasing">dojo._defaultEasing</option>
+               </select>
+       
+               <div class="box">
+                       <div id="easingChart" style="height:300px"></div>
+               </div>
+
+</body>
+</html>