1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
2 "http://www.w3.org/TR/html4/strict.dtd">
5 <title>dojox.fx.style - animatated CSS functions | The Dojo Toolkit</title>
7 <script type="text/javascript" src="../../../dojo/dojo.js" djConfig="isDebug:true, parseOnLoad: true" ></script>
8 <script type="text/javascript" src="../style.js"></script><!-- debugging -->
9 <style type="text/css">
10 @import "../../../dojo/resources/dojo.css";
11 @import "../../../dijit/themes/dijit.css";
12 @import "../../../dijit/themes/tundra/tundra.css";
13 @import "../../../dijit/tests/css/dijitTests.css";
14 @import "_animation.css"; /* external stylesheets to enhance readability in this test */
16 <script type="text/javascript">
17 dojo.require("dojox.fx.style");
18 dojo.require("dijit.form.Button");
24 <h1 class="testTitle">dojox.fx.style tests</h1>
27 dojox.fx.style provides a few methods to animate the changes that would occur
28 when adding or removing a class from a domNode.
30 <ul class="testUl" id="test1">
31 <li class="baseFont">dojox.fx.addClass(/* Object */)args); // Returns dojo._Animation</li>
32 <li class="baseFont">dojox.fx.removeClass(/* Object */args); // Returns dojo._Animation</li>
33 <li class="baseFont">dojox.fx.toggleClass(/* DomNode */node, /* String */cssClass,/* Boolean */force)</li>
36 <button dojoType="dijit.form.Button">
38 <script type="dojo/method" event="onClick">
40 // until dojox.fx.NodeList-fx is ready:
41 dojo.query("li.baseFont").forEach(function(node){
42 _anims.push(dojox.fx.toggleClass(node,"spacedHorizontal"));
44 dojo.fx.combine(_anims).play(5);
48 <button dojoType="dijit.form.Button">
50 <script type="dojo/method" event="onClick">
52 // until dojox.fx.NodeList-fx is ready:
53 dojo.query("li.baseFont").forEach(function(node){
54 _anims.push(dojox.fx.toggleClass(node,"spacedVertical"));
56 dojo.fx.combine(_anims).play(5);
60 <button dojoType="dijit.form.Button">
62 <script type="dojo/method" event="onClick">
64 // until dojox.fx.NodeList-fx is ready:
65 dojo.query("li.baseFont").forEach(function(node){
66 _anims.push(dojox.fx.toggleClass(node,"fontSizeTest"));
68 dojo.fx.combine(_anims).play(5);
72 <h2>testing sizes</h2>
74 <button dojoType="dijit.form.Button" id="addTall">
76 <script type="dojo/method" event="onClick">
79 dojo.query("#colorTest > .testBox").forEach(function(n){
80 _anims.push(dojox.fx.addClass({
87 this.setAttribute('disabled',true);
88 dijit.byId('removeTall').setAttribute('disabled',false);
89 dojo.fx.combine(_anims).play();
92 <button dojoType="dijit.form.Button" id="removeTall" disabled="true">
94 <script type="dojo/method" event="onClick">
97 dojo.query("#colorTest > .testBox").forEach(function(n){
98 _anims.push(dojox.fx.removeClass({
105 this.setAttribute('disabled',true);
106 dijit.byId('addTall').setAttribute('disabled',false);
107 dojo.fx.combine(_anims).play();
110 <button dojoType="dijit.form.Button" id="addWide">
112 <script type="dojo/method" event="onClick">
115 dojo.query("#colorTest > .testBox").forEach(function(n){
116 _anims.push(dojox.fx.addClass({
123 this.setAttribute('disabled',true);
124 dijit.byId('removeWide').setAttribute('disabled',false);
125 dojo.fx.combine(_anims).play();
128 <button dojoType="dijit.form.Button" id="removeWide" disabled="true">
130 <script type="dojo/method" event="onClick">
133 dojo.query("#colorTest > .testBox").forEach(function(n){
134 _anims.push(dojox.fx.removeClass({
141 this.setAttribute('disabled',true);
142 dijit.byId('addWide').setAttribute('disabled',false);
143 dojo.fx.combine(_anims).play();
146 <button dojoType="dijit.form.Button">
148 <script type="dojo/method" event="onClick">
150 // until dojox.fx.NodeList-fx is ready:
151 dojo.query("#colorTest > .testBox").forEach(function(node){
152 _anims.push(dojox.fx.toggleClass(node,"tiny"));
154 dojo.fx.combine(_anims).play(5);
159 <div id="colorTest1" class="floating testBox white"></div>
160 <div id="colorTest2" class="floating testBox black"></div>
161 <div id="colorTest3" class="floating testBox green"></div>
164 <br style="clear:both">
166 <h2>testing position</h2>
167 <p>This is a div position:relative with a position:absolute div inside. testing various t/l/b/r combos.
168 normal css inheritance rules apply, so setting .foo .bar if .foo was defined last in the css text, .bar
169 will take precedent. the below position test shows the results of this:
172 <button dojoType="dijit.form.Button">
174 <script type="dojo/method" event="onClick">
175 dojox.fx.toggleClass("positionTest","offsetSome").play();
178 <button dojoType="dijit.form.Button">
180 <script type="dojo/method" event="onClick">
181 dojox.fx.toggleClass("positionTest","topLeft").play();
184 <button dojoType="dijit.form.Button">
186 <script type="dojo/method" event="onClick">
187 dojox.fx.toggleClass("positionTest","bottomRight").play();
191 <div style="position:relative; height:175px; width:500px; border:1px solid #666;" id="positionBlock">
192 <div class="testBox absolutely" id="positionTest"></div>
195 <button dojoType="dijit.form.Button">
197 <script type="dojo/method" event="onClick">
198 dojox.fx.toggleClass("positionTest","green").play();
201 <button dojoType="dijit.form.Button">
203 <script type="dojo/method" event="onClick">
204 dojox.fx.toggleClass("positionTest","black").play();
207 <button dojoType="dijit.form.Button">
209 <script type="dojo/method" event="onClick">
210 dojox.fx.toggleClass("positionTest","blue").play();
215 cannot be modified (fontFace, and so on), so to ensure the results at the end
216 of the animation are applied correctly and fully, the class name is set on the node
217 via dojo.add/removeClass().