File: anim-chaining_clean.html

package info (click to toggle)
yui 2.9.0.dfsg.0.1-0.1
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 89,324 kB
  • sloc: php: 52,404; java: 4,329; xml: 748; makefile: 37
file content (134 lines) | stat: -rw-r--r-- 4,208 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
<!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>Chaining Animations Using <code>onComplete</code></title>

<style type="text/css">
/*margin and padding on body element
  can introduce errors in determining
  element position and are not recommended;
  we turn them off as a foundation for YUI
  CSS treatments. */
body {
	margin:0;
	padding:0;
}
</style>

<link rel="stylesheet" type="text/css" href="../../build/fonts/fonts-min.css" />
<link rel="stylesheet" type="text/css" href="../../build/button/assets/skins/sam/button.css" />
<script type="text/javascript" src="../../build/yahoo-dom-event/yahoo-dom-event.js"></script>
<script type="text/javascript" src="../../build/animation/animation-min.js"></script>
<script type="text/javascript" src="../../build/element/element-min.js"></script>
<script type="text/javascript" src="../../build/button/button-min.js"></script>


<!--begin custom header content for this example-->
<style type="text/css">

	#animator {
		background-color:#003366; 
		color:#fff; 
		height:15em; 
		width: 15em; 
		position:relative;
		margin:1em;
		padding:1em;
	}

</style>


<!--end custom header content for this example-->

</head>

<body class="yui-skin-sam">


<h1>Chaining Animations Using <code>onComplete</code></h1>

<div class="exampleIntro">
	<p>A common use case for animation involves causing two or more animations to fire sequentially.  This is known as <em>chaining</em>.  It's easy to chain animations using the <a href="http://developer.yahoo.com/yui/animation/">YUI Animation Utility</a>'s custom events.</p>

<p>In this example, a color animation is set to fire <em>after</em> an animation of position. Click the button below to start the sequence.</p>			
</div>

<!--BEGIN SOURCE CODE FOR EXAMPLE =============================== -->

<!--markup for YUI Button Control-->
<span id="startAnim" class="yui-button yui-link-button">
    <em class="first-child">
        <a href="#" title="Click here to begin the chained animations.">Click here to begin the chained animations.</a>
    </em>
</span>

<!--The animated element.-->
<div id="animator">
	This element will animate position
    and then color when you click the 
    button.
</div>

<script language="javascript">

//Setup the example once the animator div is present
//in the DOM.
YAHOO.util.Event.onAvailable("animator", function() {

	//This is the first animation; this one will 
	//fire when the button is clicked.
	var move = new YAHOO.util.Anim("animator", {
		left: {from:0, to:75}
	}, 1);
	
	//This is the second animation; it will fire
	//when the first animation is complete.
	var changeColor = new YAHOO.util.ColorAnim("animator", {
		backgroundColor: {from:"#003366", to:"#ff0000"}
	}, 1);

	//Here's the chaining glue: We subscribe to the
	//first animation's onComplete event, and in 
	//our handler we animate the second animation:
	move.onComplete.subscribe(function() {
		changeColor.animate();
	});
	
	//Here we set up our YUI Button and subcribe to
	//its click event.  When clicked, it will
	//animate the first animation:
	var startAnim = new YAHOO.widget.Button("startAnim");
	startAnim.subscribe("click", function() {
		//reset the color value to the start so that
		//the animation can be run multiple times:
		YAHOO.util.Dom.setStyle("animator", "backgroundColor", "#003366");
		move.animate();
	});
	
	//You can also make use of the onStart and onTween
	//custom events in Animation; here, we'll log all
	//of changeColor's custom events and peek at their
	//argument signatures:
	changeColor.onStart.subscribe(function() {
		YAHOO.log("changeColor animation is starting.", "info", "example");
	});

	changeColor.onTween.subscribe(function(s, o) {
		YAHOO.log("changeColor onTween firing with these arguments: " + 
			YAHOO.lang.dump(o), "info", "example");
	});
	
	changeColor.onComplete.subscribe(function(s, o) {
		YAHOO.log("changeColor onComplete firing with these arguments: " + 
			YAHOO.lang.dump(o), "info", "example");
	});
});
</script>
<!--END SOURCE CODE FOR EXAMPLE =============================== -->

</body>
</html>