src/cm/media/js/lib/yui/yui_3.0.0b1/examples/overlay/overlay-anim-plugin.html
author Yves-Marie Haussonne <ymh.work+github@gmail.com>
Fri, 09 May 2014 18:35:26 +0200
changeset 656 a84519031134
parent 0 40c8f766c9b8
permissions -rw-r--r--
add link to "privacy policy" in the header test
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     1
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     2
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     3
<html>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     4
<head>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     5
	<title>YUI Library Examples: Overlay: Animation Plugin</title>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     6
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     7
    	<link rel="stylesheet" type="text/css" href="../../assets/yui.css" >
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     8
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     9
<style>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    10
    /*Supplemental CSS for the YUI distribution*/
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    11
    #custom-doc { width: 95%; min-width: 950px; }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    12
    #pagetitle {background-image: url(../../assets/bg_hd.gif);}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    13
/*    #pagetitle h1 {background-image: url(../../assets/title_h_bg.gif);}*/
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    14
</style>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    15
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    16
<link rel="stylesheet" type="text/css" href="../../assets/dpSyntaxHighlighter.css">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    17
<link type="text/css" rel="stylesheet" href="../../build/cssfonts/fonts-min.css" />
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    18
<script type="text/javascript" src="../../build/yui/yui-min.js"></script>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    19
<style type="text/css">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    20
    .yui-overlay-content {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    21
        background-color:#ccc;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    22
        border:1px solid #000;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    23
        padding:5px;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    24
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    25
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    26
    .yui-overlay .yui-widget-hd, 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    27
    .yui-overlay .yui-widget-bd, 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    28
    .yui-overlay .yui-widget-ft {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    29
        background-color:#eee;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    30
        padding:2px;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    31
        border:1px solid #999;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    32
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    33
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    34
    .yui-overlay .yui-widget-bd {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    35
        background-color:#fff;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    36
    } 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    37
</style>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    38
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    39
</head>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    40
<body id="yahoo-com" class=" yui-skin-sam">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    41
<div id="custom-doc" class="yui-t2">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    42
<div id="hd">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    43
	<div id="ygunav">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    44
		<p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    45
            <em>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    46
                <a href="http://developer.yahoo.com/yui/3/">YUI 3.x Home</a> <i> - </i>	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    47
            </em>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    48
		</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    49
		<form action="http://search.yahoo.com/search" id="sitesearchform">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    50
            <input name="vs" type="hidden" value="developer.yahoo.com">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    51
            <input name="vs" type="hidden" value="yuiblog.com">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    52
		    <div id="sitesearch">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    53
		    	<label for="searchinput">Site Search (YDN &amp; YUIBlog): </label>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    54
			    <input type="text" id="searchinput" name="p">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    55
			    <input type="submit" value="Search" id="searchsubmit" class="ygbt">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    56
		    </div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    57
		</form>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    58
    </div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    59
	<div id="ygma"><a href="../../"><img src="../../assets/logo.gif"  border="0" width="200" height="93"></a></div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    60
	<div id="pagetitle"><h1>YUI Library Examples: Overlay: Animation Plugin</h1></div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    61
</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    62
<div id="bd">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    63
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    64
	<div id="bar-note"><p><strong>Note:</strong> This is YUI 3.x. Looking for <a href="http://developer.yahoo.com/yui/">YUI 2.x</a>?</p></div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    65
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    66
	<div id="yui-main">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    67
		<div class="yui-b">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    68
		  <div class="yui-ge">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    69
			  <div class="yui-u first example" id="main">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    70
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    71
	<h2>Overlay: Animation Plugin</h2>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    72
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    73
	<div id="example" class="promo">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    74
	<p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    75
	<p>This example shows how you can use Widget's plugin infrastructure to customize the existing behavior of a widget.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    76
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    77
<p>We create an Animation plugin class for Overlay called <code>AnimPlugin</code> which changes the way Overlay instances are shown/hidden, by fading them in and out. The Overlay is initially constructed with the <code>AnimPlugin</code> plugged in <em>(with the duration set to 2 seconds)</em>.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    78
Clicking the "Unplug AnimPlugin" button, will restore the original non-Animated Overlay show/hide behavior. Clicking on the "Plug AnimPlugin" button will plug in the <code>AnimPlugin</code> again, but with a shorter duration.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    79
	</p>	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    80
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    81
	<div class="module example-container ">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    82
			<div class="hd exampleHd">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    83
			<p class="newWindowButton yui-skin-sam">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    84
                <a href="overlay-anim-plugin_clean.html" target="_blank">View example in new window.</a>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    85
            </p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    86
		</div>		<div id="example-canvas" class="bd">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    87
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    88
		
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    89
	<!--BEGIN SOURCE CODE FOR EXAMPLE =============================== -->
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    90
	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    91
	<div id="overlay">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    92
    <div class="yui-widget-hd">Overlay Header</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    93
    <div class="yui-widget-bd">Overlay Body</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    94
    <div class="yui-widget-ft">Overlay Footer</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    95
</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    96
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    97
<button type="button" id="show">Show</button>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    98
<button type="button" id="hide">Hide</button>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    99
<button type="button" id="unplug">Unplug AnimPlugin</button>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   100
<button type="button" id="plug">Plug AnimPlugin (duration:0.5)</button>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   101
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   102
<script type="text/javascript">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   103
YUI({base:"../../build/", timeout: 10000}).use("overlay", "anim", "plugin", function(Y) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   104
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   105
    /* Animation Plugin Constructor */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   106
    function AnimPlugin(config) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   107
        AnimPlugin.superclass.constructor.apply(this, arguments);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   108
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   109
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   110
    /* 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   111
     * The namespace for the plugin. This will be the property on the widget, which will 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   112
     * reference the plugin instance, when it's plugged in
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   113
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   114
    AnimPlugin.NS = "fx";
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   115
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   116
    /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   117
     * The NAME of the AnimPlugin class. Used to prefix events generated
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   118
     * by the plugin class.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   119
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   120
    AnimPlugin.NAME = "animPlugin";
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   121
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   122
    /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   123
     * The default set of attributes for the AnimPlugin class.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   124
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   125
    AnimPlugin.ATTRS = {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   126
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   127
        /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   128
         * Default duration. Used by the default animation implementations
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   129
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   130
        duration : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   131
            value: 0.2
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   132
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   133
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   134
        /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   135
         * Default animation instance used for showing the widget (opacity fade-in)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   136
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   137
        animVisible : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   138
            valueFn : function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   139
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   140
		var host = this.get("host");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   141
                var boundingBox = host.get("boundingBox");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   142
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   143
                var anim = new Y.Anim({
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   144
                    node: boundingBox,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   145
                    to: { opacity: 1 },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   146
                    duration: this.get("duration")
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   147
                });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   148
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   149
                // Set initial opacity, to avoid initial flicker
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   150
                if (!host.get("visible")) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   151
                    boundingBox.setStyle("opacity", 0);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   152
                }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   153
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   154
                // Clean up, on destroy. Where supported, remove
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   155
                // opacity set using style. Else make 100% opaque
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   156
                anim.on("destroy", function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   157
                    if (Y.UA.ie) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   158
                        this.get("node").setStyle("opacity", 1);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   159
                    } else {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   160
                        this.get("node").setStyle("opacity", "");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   161
                    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   162
                });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   163
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   164
                return anim;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   165
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   166
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   167
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   168
        /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   169
         * Default animation instance used for hiding the widget (opacity fade-out)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   170
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   171
        animHidden : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   172
            valueFn : function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   173
                return new Y.Anim({
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   174
                    node: this.get("host").get("boundingBox"),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   175
                    to: { opacity: 0 },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   176
                    duration: this.get("duration")
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   177
                });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   178
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   179
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   180
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   181
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   182
    /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   183
     * Extend the base plugin class
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   184
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   185
    Y.extend(AnimPlugin, Y.Plugin.Base, {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   186
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   187
        /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   188
         * Initialization code. Called when the 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   189
         * plugin is instantiated (whenever it's 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   190
         * plugged into the host)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   191
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   192
        initializer : function(config) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   193
            this._bindAnimVisible();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   194
            this._bindAnimHidden();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   195
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   196
            this.after("animVisibleChange", this._bindAnimVisible);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   197
            this.after("animHiddenChange", this._bindAnimHidden);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   198
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   199
            // Override default _uiSetVisible method, with custom animated method
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   200
            this.doBefore("_uiSetVisible", this._uiAnimSetVisible);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   201
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   202
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   203
        /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   204
         * Destruction code. Invokes destroy in the individual animation instances,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   205
         * and lets them take care of cleaning up any state.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   206
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   207
        destructor : function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   208
            this.get("animVisible").destroy();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   209
            this.get("animHidden").destroy();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   210
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   211
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   212
        /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   213
         * The custom animation method, added by the plugin.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   214
         *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   215
         * This method replaces the default _uiSetVisible handler
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   216
         * Widget provides, by injecting itself before _uiSetVisible,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   217
         * (using Plugins before method) and preventing the default
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   218
         * behavior.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   219
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   220
        _uiAnimSetVisible : function(val) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   221
            if (this.get("host").get("rendered")) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   222
                if (val) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   223
                    this.get("animHidden").stop();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   224
                    this.get("animVisible").run();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   225
                } else {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   226
                    this.get("animVisible").stop();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   227
                    this.get("animHidden").run();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   228
                }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   229
                return new Y.Do.Prevent("AnimPlugin prevented default show/hide");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   230
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   231
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   232
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   233
        /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   234
         * The original Widget _uiSetVisible implementation
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   235
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   236
        _uiSetVisible : function(val) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   237
            var host = this.get("host");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   238
            var hiddenClass = host.getClassName("hidden");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   239
            if (!val) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   240
                host.get("boundingBox").addClass(hiddenClass);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   241
            } else {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   242
                host.get("boundingBox").removeClass(hiddenClass);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   243
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   244
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   245
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   246
        /* Sets up call to invoke original visibility handling when the animVisible animation is started */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   247
        _bindAnimVisible : function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   248
            var animVisible = this.get("animVisible");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   249
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   250
            // Setup original visibility handling (for show) before starting to animate
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   251
            animVisible.on("start", Y.bind(function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   252
                this._uiSetVisible(true);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   253
            }, this));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   254
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   255
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   256
        /* Sets up call to invoke original visibility handling when the animHidden animation is complete */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   257
        _bindAnimHidden : function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   258
            var animHidden = this.get("animHidden");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   259
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   260
            // Setup original visibility handling (for hide) after completing animation
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   261
            animHidden.after("end", Y.bind(function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   262
                this._uiSetVisible(false);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   263
            }, this));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   264
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   265
    });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   266
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   267
    // Create a new Overlay instance, and add AnimPlugin with a default duration of 2 seconds
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   268
    var overlay = new Y.Overlay({
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   269
        contentBox: "#overlay",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   270
        width:"10em",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   271
        height:"10em",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   272
        visible:false,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   273
        shim:false,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   274
        align: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   275
            node: "#show", 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   276
            points: ["tl", "bl"]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   277
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   278
        plugins : [{fn:AnimPlugin, cfg:{duration:2}}]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   279
    });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   280
    overlay.render();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   281
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   282
    Y.on("click", function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   283
        overlay.show();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   284
    }, "#show");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   285
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   286
    Y.on("click", function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   287
        overlay.hide();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   288
    }, "#hide");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   289
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   290
    Y.on("click", function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   291
        overlay.unplug("fx");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   292
    }, "#unplug");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   293
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   294
    Y.on("click", function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   295
        overlay.unplug("fx");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   296
        overlay.plug({fn:AnimPlugin, cfg:{duration:0.5}});
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   297
    }, "#plug");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   298
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   299
});
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   300
</script>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   301
	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   302
	<!--END SOURCE CODE FOR EXAMPLE =============================== -->
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   303
	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   304
		
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   305
		</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   306
	</div>			
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   307
	</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   308
		
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   309
	<h3>Creating an Animation Plugin For Overlay</h3>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   310
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   311
<h4>Setting Up The YUI Instance</h4>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   312
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   313
<p>For this example, we'll pull in the <code>overlay</code> module, along with the <code>anim</code> and <code>plugin</code> modules. The <code>anim</code> module provides the animation utility, and <code>plugin</code> will provide
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   314
the <code>Plugin</code> base class which we'll extend to create our <code>AnimPlugin</code>. The code to set up our sandbox instance is shown below:</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   315
 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   316
<textarea name="code" class="JScript" rows="1" cols="60">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   317
YUI({...}).use("overlay", "anim", "plugin", function(Y) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   318
    // We'll write our code here, after pulling in the default Overlay widget, the Animation utility and the Plugin base class
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   319
});
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   320
</textarea>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   321
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   322
<p>Using the <code>overlay</code> module will also pull down the default CSS required for overlay, on top of which we only need to add our required look/feel CSS for the example.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   323
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   324
<h4>AnimPlugin Class Structure</h4>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   325
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   326
<p>The <code>AnimPlugin</code> class will extend the <code>Plugin</code> base class. Since <code>Plugin</code> derives from <code>Base</code>, we follow the same pattern we use for widgets and other utilities which extend Base to setup our new class.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   327
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   328
<p>Namely:</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   329
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   330
<ul>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   331
    <li>Setting up the constructor to invoke the superclass constructor</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   332
    <li>Setting up a <code>NAME</code> property, to identify the class</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   333
    <li>Setting up the default attributes, using the <code>ATTRS</code> property</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   334
    <li>Providing prototype implementations for anything we want executed during initialization and destruction using the <code>initializer</code> and <code>destructor</code> lifecycle methods</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   335
</ul>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   336
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   337
<p>Additionally, since this is a plugin, we provide a <code>NS</code> property for the class, which defines the property which will refer to the <code>AnimPlugin</code> instance on the host class (e.g. <code>overlay.fx</code> will be an instance of <code>AnimPlugin</code>)</p>.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   338
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   339
<p>This basic structure is shown below:</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   340
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   341
<textarea name="code" class="JScript" rows="1" cols="60">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   342
    /* Animation Plugin Constructor */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   343
    function AnimPlugin(config) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   344
        AnimPlugin.superclass.constructor.apply(this, arguments);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   345
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   346
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   347
    /* 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   348
     * The namespace for the plugin. This will be the property on the widget, which will 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   349
     * reference the plugin instance, when it's plugged in
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   350
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   351
    AnimPlugin.NS = "fx";
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   352
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   353
    /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   354
     * The NAME of the AnimPlugin class. Used to prefix events generated
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   355
     * by the plugin class.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   356
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   357
    AnimPlugin.NAME = "animPlugin";
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   358
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   359
    /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   360
     * The default set of attributes for the AnimPlugin class.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   361
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   362
    AnimPlugin.ATTRS = {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   363
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   364
        /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   365
         * Default duration. Used by the default animation implementations
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   366
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   367
        duration : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   368
            value: 0.2
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   369
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   370
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   371
        /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   372
         * Default animation instance used for showing the widget (opacity fade-in)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   373
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   374
        animVisible : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   375
            valueFn : function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   376
                ...
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   377
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   378
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   379
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   380
        /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   381
         * Default animation instance used for hiding the widget (opacity fade-out)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   382
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   383
        animHidden : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   384
            valueFn : function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   385
                ...
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   386
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   387
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   388
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   389
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   390
    /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   391
     * Extend the base plugin class
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   392
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   393
    Y.extend(AnimPlugin, Y.Plugin, {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   394
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   395
        // Lifecycle methods
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   396
        initializer : function(config) { ... },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   397
        destructor : function() { ... },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   398
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   399
        // Other plugin specific methods
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   400
        _uiAnimSetVisible : function(val) { ... },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   401
        _uiSetVisible : function(val) { ... },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   402
        ...
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   403
    });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   404
</textarea>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   405
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   406
<h4>Attributes: animVisible, animHidden</h4>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   407
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   408
<p>The <code>animVisible</code> and <code>animHidden</code> attributes use Attribute's <code>valueFn</code> support to set up instance based default values for the attributes.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   409
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   410
<p>The <code>animHidden</code> attribute is pretty straight forward and simply returns the Animation instance bound to the bounding box of the Overlay to provide a fade-out animation:</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   411
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   412
<textarea name="code" class="JScript" rows="1" cols="60">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   413
    animHidden : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   414
        valueFn : function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   415
            return new Y.Anim({
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   416
                node: this.get("host").get("boundingBox"),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   417
                to: { opacity: 0 },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   418
                duration: this.get("duration")
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   419
            });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   420
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   421
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   422
</textarea>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   423
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   424
<p>The <code>animVisible</code> attribute is a little more interesting:</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   425
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   426
<textarea name="code" class="JScript" rows="1" cols="60">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   427
    animVisible : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   428
        valueFn : function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   429
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   430
            var host = this.get("host"),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   431
                boundingBox = host.get("boundingBox");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   432
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   433
            var anim = new Y.Anim({
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   434
                node: boundingBox,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   435
                to: { opacity: 1 },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   436
                duration: this.get("duration")
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   437
            });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   438
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   439
            // Set initial opacity, to avoid initial flicker
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   440
            if (!host.get("visible")) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   441
                boundingBox.setStyle("opacity", 0);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   442
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   443
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   444
            // Clean up, on destroy. Where supported, remove
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   445
            // opacity set using style. Else make 100% opaque
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   446
            anim.on("destroy", function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   447
                if (Y.UA.ie) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   448
                    this.get("node").setStyle("opacity", 1);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   449
                } else {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   450
                    this.get("node").setStyle("opacity", "");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   451
                }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   452
            });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   453
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   454
            return anim;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   455
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   456
</textarea>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   457
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   458
<p>It essentially does the same thing as <code>animHidden</code>; setting up an Animation instance to provide an opacity based fade-in. However it also sets up a listener which will attempt to cleanup the opacity state of the Overlay when the plugin is unplugged from the Overlay. When a plugin is unplugged, it is destroyed.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   459
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   460
<h4>Lifecycle Methods: initializer, destructor</h4>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   461
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   462
<p>In the <code>initializer</code>, we set up listeners on the animation instances (using <code>_bindAnimVisible, _bindAnimHidden</code>), which invoke the original visibility handling to make the Overlay visible before starting the <code>animVisible</code> animation and hide it after the <code>animHidden</code> animation is complete.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   463
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   464
<textarea name="code" class="JScript" rows="1" cols="60">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   465
    initializer : function(config) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   466
        this._bindAnimVisible();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   467
        this._bindAnimHidden();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   468
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   469
        this.after("animVisibleChange", this._bindAnimVisible);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   470
        this.after("animHiddenChange", this._bindAnimHidden);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   471
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   472
        // Override default _uiSetVisible method, with custom animated method
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   473
        this.doBefore("_uiSetVisible", this._uiAnimSetVisible);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   474
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   475
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   476
    ...
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   477
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   478
    _bindAnimVisible : function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   479
        var animVisible = this.get("animVisible");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   480
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   481
        animVisible.on("start", Y.bind(function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   482
            // Setup original visibility handling (for show) before starting to animate
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   483
            this._uiSetVisible(true);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   484
        }, this));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   485
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   486
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   487
    _bindAnimHidden : function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   488
        var animHidden = this.get("animHidden");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   489
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   490
        animHidden.after("end", Y.bind(function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   491
            // Setup original visibility handling (for hide) after completing animation
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   492
            this._uiSetVisible(false);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   493
        }, this));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   494
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   495
</textarea>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   496
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   497
<p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   498
However the key part of the <code>initializer</code> method is the call to <code>this.doBefore("_uiSetVisible", this._uiAnimSetVisible)</code> <em>(line 9)</em>. <code>Plugin</code>'s <code>doBefore</code> and <code>doAfter</code> methods, will let you set up both before/after event listeners, as well as inject code to be executed before or after a given method on the host object (in this case the Overlay) is invoked.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   499
</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   500
<p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   501
For the animation plugin, we want to change how the Overlay updates its UI in response to changes to the <code>visible</code> attribute. Instead of simply flipping visibility (through the application of the <code>yui-overlay-hidden</code> class), we want to fade the Overlay in and out. Therefore, we inject our custom animation method, <code>_uiSetAnimVisible</code>, before the Overlay's <code>_uiSetVisible</code>.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   502
</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   503
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   504
<p>Using <code>Plugin</code>'s <code>doBefore/doAfter</code> methods to setup any event listeners and method injection code on the host object (Overlay), ensures that the custom behavior is removed when the plugin is unplugged from the host, restoring it's original behavior.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   505
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   506
<p>The <code>destructor</code> simply calls <code>destroy</code> on the animation instances used, and lets them perform their own cleanup (as defined in the discussion on attributes):</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   507
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   508
<textarea name="code" class="JScript" rows="1" cols="60">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   509
    destructor : function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   510
        this.get("animVisible").destroy();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   511
        this.get("animHidden").destroy();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   512
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   513
</textarea>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   514
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   515
<h4>The Animated Visibility Method</h4>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   516
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   517
<p>The <code>_uiAnimSetVisible</code> method is the method we use to over-ride the default visibility handling for the Overlay. Instead of simply adding or removing the <code>yui-overlay-hidden</code> class, it starts the appropriate animation depending on whether or not visible is being set to true or false:</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   518
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   519
<textarea name="code" class="JScript" rows="1" cols="60">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   520
    _uiAnimSetVisible : function(val) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   521
        if (this.get("host").get("rendered")) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   522
            if (val) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   523
                this.get("animHidden").stop();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   524
                this.get("animVisible").run();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   525
            } else {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   526
                this.get("animVisible").stop();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   527
                this.get("animHidden").run();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   528
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   529
            return new Y.Do.Halt();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   530
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   531
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   532
</textarea>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   533
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   534
<p>Since this method is injected before the default method which handles visibility changes for Overlay (<code>_uiSetVisibility</code>), we invoke <code>Y.Do.Halt()</code> to prevent the original method from being invoked, since we'd like to invoke it in response to the animation starting or completing. 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   535
<code>Y.Do</code> is YUI's aop infrastructure and is used under the hood by Plugin's <code>doBefore</code> and <code>doAfter</code> methods when injecting code</p>.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   536
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   537
<h4>The Original Visibility Method</h4>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   538
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   539
<p>The original visiblity handling for Overlay is replicated in the <code>AnimPlugin</code>'s <code>_uiSetVisible</code> method and is invoked before starting the <code>animVisible</code> animation and after completing the <code>animHidden</code> animation as described above.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   540
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   541
<textarea name="code" class="JScript" rows="1" cols="60">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   542
    _uiSetVisible : function(val) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   543
        var host = this.get("host");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   544
        if (!val) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   545
            host.get("boundingBox").addClass(host.getClassName("hidden"));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   546
        } else {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   547
            host.get("boundingBox").removeClass(host.getClassName("hidden"));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   548
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   549
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   550
</textarea>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   551
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   552
<p><strong>NOTE:</strong> We're evaluating whether or not <code>Y.Do</code> may provide access to the original method for a future release, which would make this replicated code unnecessary.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   553
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   554
<h4>Using The Plugin</h4>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   555
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   556
<p>All objects which derive from <a href="../../api/Base.html">Base</a> are <a href="../../api/Plugin.Host.html">Plugin Hosts</a>. They provide <code>plug</code> and <code>unplug</code> methods to allow users to add/remove plugins to/from existing instances. They also allow the user to specify the set of plugins to be applied to a new instance, along with their configurations, as part of the constructor arguments:</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   557
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   558
<textarea name="code" class="JScript" rows="1" cols="60">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   559
    var overlay = new Y.Overlay({
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   560
        contentBox: "#overlay",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   561
        width:"10em",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   562
        height:"10em",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   563
        visible:false,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   564
        shim:false,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   565
        align: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   566
            node: "#show", 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   567
            points: ["tl", "bl"]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   568
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   569
        plugins : [{fn:AnimPlugin, cfg:{duration:2}}]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   570
    });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   571
    overlay.render();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   572
</textarea>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   573
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   574
<p>We use the constructor support to setup the <code>AnimPlugin</code> for the instance with a custom value for its <code>duration</code> attribute as shown on line 11 above.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   575
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   576
<p><strong>NOTE:</strong> In the interests of keeping the example focused on the plugin infrastructure, we turn off shimming for the overlay. If we needed to enable shimming, In IE6, we'd need to remove the alpha opacity filter set on the shim while animating, to have IE animate the contents of the Overlay correctly.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   577
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   578
<p>The example also uses the <code>plug</code> and <code>unplug</code> methods, to add and remove the custom animation behavior after the instance is created:</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   579
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   580
<textarea name="code" class="JScript" rows="1" cols="60">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   581
    // Listener for the "Unplug AnimPlugin" button, removes the AnimPlugin from the overlay instance
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   582
    Y.on("click", function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   583
        overlay.unplug("fx");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   584
    }, "#unplug");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   585
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   586
    // Listener for the "Plug AnimPlugin" button, removes the AnimPlugin from the overlay instance, 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   587
    // and re-adds it with a new, shorter duration value.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   588
    Y.on("click", function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   589
        overlay.unplug("fx");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   590
        overlay.plug({fn:AnimPlugin, cfg:{duration:0.5}});
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   591
    }, "#plug");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   592
</textarea>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   593
				</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   594
				<div class="yui-u sidebar">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   595
					
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   596
				
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   597
					<div id="examples" class="mod box4">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   598
                        <div class="hd">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   599
						<h4>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   600
    Overlay Examples:</h4>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   601
                        </div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   602
						<div class="bd">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   603
							<ul>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   604
								<li><a href='../overlay/overlay-xy.html'>Basic XY Positioning</a></li><li><a href='../overlay/overlay-align.html'>Extended XY Positioning</a></li><li><a href='../overlay/overlay-stack.html'>Stack Support</a></li><li><a href='../overlay/overlay-stdmod.html'>Standard Module Support</a></li><li><a href='../overlay/overlay-io-plugin.html'>IO Plugin</a></li><li class='selected'><a href='../overlay/overlay-anim-plugin.html'>Animation Plugin</a></li><li><a href='../node-focusmanager/node-focusmanager-3.html'>Accessible Menu Button (included with examples for Focus Manager Node Plugin)</a></li>							</ul>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   605
						</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   606
					</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   607
					
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   608
					<div class="mod box4">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   609
                        <div class="hd">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   610
						<h4>More Overlay Resources:</h4>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   611
                        </div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   612
                        <div class="bd">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   613
						<ul>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   614
							<!-- <li><a href="http://developer.yahoo.com/yui/overlay/">User's Guide</a> (external)</li> -->
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   615
						<li><a href="../../api/module_overlay.html">API Documentation</a></li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   616
</ul>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   617
                        </div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   618
					</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   619
			  </div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   620
		</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   621
		
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   622
		</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   623
	</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   624
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   625
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   626
<div class="yui-b toc3" id="tocWrapper">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   627
<!-- TABLE OF CONTENTS -->
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   628
<div id="toc">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   629
	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   630
<ul>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   631
<li class="sect first">YUI 3.x Project</li><li class="item"><a title="The Yahoo! User Interface (YUI) Library, 3.x Branch, " href="http://developer.yahoo.com/yui/3/">YUI 3 Web Site (external)</a></li><li class="item"><a title="Examples of every YUI utility and control in action" href="../../examples/">YUI 3 Examples</a></li><li class="item"><a title="Instantly searchable API documentation for the entire YUI library." href="../../api/">YUI 3 API Docs</a></li><li class="item"><a title="The YUI Library can be downloaded from SourceForge" href="http://sourceforge.net/projects/yui/">YUI 3 on Sourceforge (external)</a></li><li class="item"><a title="YUI is free and open, offered under a BSD license." href="http://developer.yahoo.com/yui/3/license.html">YUI License (external)</a></li><li class="sect">YUI 3 Core - Examples</li><li class="item"><a title="YUI (Global Prerequisite) - Functional Examples" href="../../examples/yui/index.html">YUI (Global Prerequisite)</a></li><li class="item"><a title="Event - Functional Examples" href="../../examples/event/index.html">Event</a></li><li class="item"><a title="Node - Functional Examples" href="../../examples/node/index.html">Node</a></li><li class="sect">YUI 3 Component Infrastructure - Examples</li><li class="item"><a title="Attribute - Functional Examples" href="../../examples/attribute/index.html">Attribute</a></li><li class="item"><a title="Plugin - Functional Examples" href="../../examples/plugin/index.html">Plugin</a></li><li class="item"><a title="Widget - Functional Examples" href="../../examples/widget/index.html">Widget</a></li><li class="sect">YUI 3 Utilities - Examples</li><li class="item"><a title="Animation - Functional Examples" href="../../examples/anim/index.html">Animation</a></li><li class="item"><a title="Cache - Functional Examples" href="../../examples/cache/index.html">Cache</a></li><li class="item"><a title="Cookie - Functional Examples" href="../../examples/cookie/index.html">Cookie</a></li><li class="item"><a title="DataSchema - Functional Examples" href="../../examples/dataschema/index.html">DataSchema</a></li><li class="item"><a title="DataSource - Functional Examples" href="../../examples/datasource/index.html">DataSource</a></li><li class="item"><a title="DataType - Functional Examples" href="../../examples/datatype/index.html">DataType</a></li><li class="item"><a title="Drag &amp; Drop - Functional Examples" href="../../examples/dd/index.html">Drag &amp; Drop</a></li><li class="item"><a title="Get - Functional Examples" href="../../examples/get/index.html">Get</a></li><li class="item"><a title="History - Functional Examples" href="../../examples/history/index.html">History</a></li><li class="item"><a title="ImageLoader - Functional Examples" href="../../examples/imageloader/index.html">ImageLoader</a></li><li class="item"><a title="IO - Functional Examples" href="../../examples/io/index.html">IO</a></li><li class="item"><a title="JSON (JavaScript Object Notation) - Functional Examples" href="../../examples/json/index.html">JSON</a></li><li class="item"><a title="Queue - Functional Examples" href="../../examples/queue/index.html">Queue</a></li><li class="item"><a title="Stylesheet - Functional Examples" href="../../examples/stylesheet/index.html">Stylesheet</a></li><li class="sect">YUI 3 Widgets - Examples</li><li class="selected "><a title="Overlay - Functional Examples" href="../../examples/overlay/index.html">Overlay</a></li><li class="item"><a title="Slider - Functional Examples" href="../../examples/slider/index.html">Slider</a></li><li class="sect">YUI 3 Node Plugins - Examples</li><li class="item"><a title="FocusManager Node Plugin - Functional Examples" href="../../examples/node-focusmanager/index.html">FocusManager Node Plugin</a></li><li class="item"><a title="MenuNav Node Plugin - Functional Examples" href="../../examples/node-menunav/index.html">MenuNav Node Plugin</a></li><li class="sect">YUI 3 CSS - Examples</li><li class="item"><a title="YUI CSS Reset - Functional Examples" href="../../examples/cssreset/index.html">CSS Reset</a></li><li class="item"><a title="YUI Fonts - Functional Examples" href="../../examples/cssfonts/index.html">CSS Fonts</a></li><li class="item"><a title="YUI Base - Functional Examples" href="../../examples/cssbase/index.html">CSS Base</a></li><li class="sect">YUI 3 Developer Tools - Examples</li><li class="item"><a title="Console - Functional Examples" href="../../examples/console/index.html">Console</a></li><li class="item"><a title="Profiler - Functional Examples" href="../../examples/profiler/index.html">Profiler</a></li><li class="item"><a title="Test - Functional Examples" href="../../examples/test/index.html">Test</a></li><li class="sect">The YUI Community</li><li class="item"><a title="The Yahoo! User Interface Blog" href="http://yuiblog.com">YUI Blog (external)</a></li><li class="item"><a title="The Yahoo! Group YDN-JavaScript hosts the YUI community forum" href="http://tech.groups.yahoo.com/group/ydn-javascript/">YUI Forum (external)</a></li><li class="item"><a title="The Yahoo! Group yui3 is dedicated to the 3.x branch of the Yahoo! User Interface (YUI) Library." href="http://tech.groups.yahoo.com/group/yui3/">YUI 3 Forum (external)</a></li><li class="item"><a title="YUI is used by Yahoo! and by hundreds of other sites, including many you know and love." href="/yui/poweredby/">YUI Sightings (external)</a></li><li class="item"><a title="Videos and podcasts from the YUI Team and from the Yahoo! frontend engineering community." href="http://developer.yahoo.com/yui/theater/">YUI Theater (external)</a></li><li class="sect">YUI Articles on the YUI Website</li><li class="item"><a title="Answers to Frequently Asked Questions about the YUI Library" href="http://developer.yahoo.com/yui/articles/faq/">YUI FAQ (external)</a></li><li class="item"><a title="Yahoo!'s philosophy of Graded Browser Support" href="http://developer.yahoo.com/yui/articles/gbs/">Graded Browser Support (external)</a></li><li class="item"><a title="Reporting Bugs and Making Feature Requests for YUI Components" href="http://developer.yahoo.com/yui/articles/reportingbugs/">Bug Reports/Feature Requests (external)</a></li><li class="item"><a title="Serve YUI source files from Yahoo! -- free, fast, and simple" href="http://developer.yahoo.com/yui/3/articles/hosting/">Serving YUI Files from Yahoo! (external)</a></li></ul>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   632
</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   633
</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   634
	</div><!--closes bd-->
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   635
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   636
	<div id="ft">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   637
        <p class="first">Copyright &copy; 2009 Yahoo! Inc. All rights reserved.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   638
        <p><a href="http://privacy.yahoo.com/privacy/us/devel/index.html">Privacy Policy</a> - 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   639
            <a href="http://docs.yahoo.com/info/terms/">Terms of Service</a> - 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   640
            <a href="http://docs.yahoo.com/info/copyright/copyright.html">Copyright Policy</a> - 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   641
            <a href="http://careers.yahoo.com/">Job Openings</a></p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   642
	</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   643
</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   644
<script src="../../assets/dpSyntaxHighlighter.js"></script>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   645
<script language="javascript"> 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   646
dp.SyntaxHighlighter.HighlightAll('code'); 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   647
</script>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   648
</body>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   649
</html>