src/cm/media/js/lib/yui/yui_3.10.3/docs/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 525 89ef5ed3c48b
permissions -rw-r--r--
add link to "privacy policy" in the header test
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
525
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     1
<!DOCTYPE html>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     2
<html lang="en">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     3
<head>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     4
    <meta charset="utf-8">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     5
    <title>Example: Animation Plugin</title>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     6
    <link rel="stylesheet" href="http://fonts.googleapis.com/css?family=PT+Sans:400,700,400italic,700italic">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     7
    <link rel="stylesheet" href="../../build/cssgrids/cssgrids-min.css">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     8
    <link rel="stylesheet" href="../assets/css/main.css">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     9
    <link rel="stylesheet" href="../assets/vendor/prettify/prettify-min.css">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    10
    <link rel="shortcut icon" type="image/png" href="../assets/favicon.png">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    11
    <script src="../../build/yui/yui-min.js"></script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    12
    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    13
</head>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    14
<body>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    15
<!--
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    16
<a href="https://github.com/yui/yui3"><img style="position: absolute; top: 0; right: 0; border: 0;" src="https://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png" alt="Fork me on GitHub"></a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    17
-->
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    18
<div id="doc">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    19
    <div id="hd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    20
        <h1><img src="http://yuilibrary.com/img/yui-logo.png"></h1>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    21
    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    22
    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    23
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    24
            <h1>Example: Animation Plugin</h1>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    25
    <div class="yui3-g">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    26
        <div class="yui3-u-3-4">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    27
            <div id="main">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    28
                <div class="content"><style type="text/css" scoped>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    29
    /* If js is enabled, hide overlay markup off screen while the overlay is being instantiated */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    30
    .yui3-js-enabled .yui3-overlay-loading {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    31
        top:-1000em;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    32
        left:-1000em;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    33
        position:absolute;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    34
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    35
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    36
/* Overlay Look/Feel */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    37
.yui3-overlay-content {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    38
    background-color: #ECEFFB;  
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    39
    border: 1px solid #9EA8C6;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    40
    border-radius: 3px;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    41
    box-shadow: 3px 3px 5px rgba(0, 0, 0, 0.25);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    42
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    43
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    44
.yui3-overlay-content .yui3-widget-hd {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    45
    background-color: #B6BFDA;  
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    46
    color: #30418C;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    47
    font-size: 120%;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    48
    font-weight: bold;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    49
    padding: 0.2em 0.5em 0.3em;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    50
    border-radius: 2px 2px 0 0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    51
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    52
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    53
.yui3-overlay-content .yui3-widget-bd {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    54
    padding: 0.4em 0.6em 0.5em;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    55
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    56
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    57
.yui3-overlay-content .yui3-widget-ft {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    58
    background-color:#DFE3F5;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    59
    padding: 0.4em 0.6em 0.5em;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    60
    border-radius: 0 0 2px 2px;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    61
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    62
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    63
</style>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    64
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    65
<div class="intro">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    66
    <p>This example shows how you can use Widget's plugin infrastructure to customize the existing behavior of a widget.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    67
    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    68
    <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>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    69
    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>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    70
    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    71
    <p>NOTE: This example serves as a tutorial for how to build your own plugins. A packaged animation plugin based on this example is available by using the <code>widget-anim</code> module, which sets up a <a href="http://yuilibrary.com/yui/docs/api/WidgetAnim.js.html"><code>Y.Plugin.WidgetAnim</code></a> class, similar to the one discussed in this example.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    72
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    73
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    74
<div class="example">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    75
    <div id="overlay" class="yui3-overlay-loading">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    76
    <div class="yui3-widget-hd">Overlay Header</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    77
    <div class="yui3-widget-bd">Overlay Body</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    78
    <div class="yui3-widget-ft">Overlay Footer</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    79
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    80
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    81
<button type="button" id="show">Show</button>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    82
<button type="button" id="hide">Hide</button>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    83
<button type="button" id="unplug">Unplug AnimPlugin</button>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    84
<button type="button" id="plug">Plug AnimPlugin (duration:0.5)</button>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    85
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    86
<script type="text/javascript">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    87
YUI().use("overlay", "anim", "plugin", function(Y) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    88
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    89
    /* Animation Plugin Constructor */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    90
    function AnimPlugin(config) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    91
        AnimPlugin.superclass.constructor.apply(this, arguments);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    92
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    93
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    94
    /* 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    95
     * The namespace for the plugin. This will be the property on the widget, which will 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    96
     * reference the plugin instance, when it's plugged in
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    97
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    98
    AnimPlugin.NS = "fx";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    99
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   100
    /*
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   101
     * The NAME of the AnimPlugin class. Used to prefix events generated
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   102
     * by the plugin class.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   103
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   104
    AnimPlugin.NAME = "animPlugin";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   105
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   106
    /*
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   107
     * The default set of attributes for the AnimPlugin class.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   108
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   109
    AnimPlugin.ATTRS = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   110
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   111
        /*
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   112
         * Default duration. Used by the default animation implementations
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   113
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   114
        duration : {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   115
            value: 0.2
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   116
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   117
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   118
        /*
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   119
         * Default animation instance used for showing the widget (opacity fade-in)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   120
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   121
        animVisible : {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   122
            valueFn : function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   123
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   124
                var host = this.get("host"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   125
                    boundingBox = host.get("boundingBox");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   126
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   127
                var anim = new Y.Anim({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   128
                    node: boundingBox,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   129
                    to: { opacity: 1 },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   130
                    duration: this.get("duration")
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   131
                });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   132
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   133
                // Set initial opacity, to avoid initial flicker
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   134
                if (!host.get("visible")) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   135
                    boundingBox.setStyle("opacity", 0);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   136
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   137
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   138
                // Clean up, on destroy. Where supported, remove
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   139
                // opacity set using style. Else make 100% opaque
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   140
                anim.on("destroy", function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   141
                    if (Y.UA.ie) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   142
                        this.get("node").setStyle("opacity", 1);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   143
                    } else {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   144
                        this.get("node").setStyle("opacity", "");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   145
                    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   146
                });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   147
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   148
                return anim;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   149
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   150
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   151
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   152
        /*
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   153
         * Default animation instance used for hiding the widget (opacity fade-out)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   154
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   155
        animHidden : {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   156
            valueFn : function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   157
                return new Y.Anim({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   158
                    node: this.get("host").get("boundingBox"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   159
                    to: { opacity: 0 },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   160
                    duration: this.get("duration")
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   161
                });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   162
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   163
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   164
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   165
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   166
    /*
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   167
     * Extend the base plugin class
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   168
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   169
    Y.extend(AnimPlugin, Y.Plugin.Base, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   170
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   171
        /*
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   172
         * Initialization code. Called when the 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   173
         * plugin is instantiated (whenever it's 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   174
         * plugged into the host)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   175
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   176
        initializer : function(config) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   177
            this._bindAnimVisible();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   178
            this._bindAnimHidden();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   179
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   180
            this.after("animVisibleChange", this._bindAnimVisible);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   181
            this.after("animHiddenChange", this._bindAnimHidden);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   182
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   183
            // Override default _uiSetVisible method, with custom animated method
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   184
            this.doBefore("_uiSetVisible", this._uiAnimSetVisible);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   185
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   186
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   187
        /*
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   188
         * Destruction code. Invokes destroy in the individual animation instances,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   189
         * and lets them take care of cleaning up any state.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   190
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   191
        destructor : function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   192
            this.get("animVisible").stop().destroy();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   193
            this.get("animHidden").stop().destroy();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   194
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   195
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   196
        /*
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   197
         * The custom animation method, added by the plugin.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   198
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   199
         * This method replaces the default _uiSetVisible handler
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   200
         * Widget provides, by injecting itself before _uiSetVisible,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   201
         * (using Plugins before method) and preventing the default
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   202
         * behavior.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   203
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   204
        _uiAnimSetVisible : function(val) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   205
            if (this.get("host").get("rendered")) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   206
                if (val) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   207
                    this.get("animHidden").stop();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   208
                    this.get("animVisible").run();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   209
                } else {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   210
                    this.get("animVisible").stop();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   211
                    this.get("animHidden").run();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   212
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   213
                return new Y.Do.Prevent("AnimPlugin prevented default show/hide");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   214
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   215
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   216
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   217
        /*
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   218
         * The original Widget _uiSetVisible implementation
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   219
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   220
        _uiSetVisible : function(val) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   221
            var host = this.get("host");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   222
            var hiddenClass = host.getClassName("hidden");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   223
            if (!val) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   224
                host.get("boundingBox").addClass(hiddenClass);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   225
            } else {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   226
                host.get("boundingBox").removeClass(hiddenClass);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   227
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   228
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   229
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   230
        /* Sets up call to invoke original visibility handling when the animVisible animation is started */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   231
        _bindAnimVisible : function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   232
            var animVisible = this.get("animVisible");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   233
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   234
            // Setup original visibility handling (for show) before starting to animate
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   235
            animVisible.on("start", Y.bind(function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   236
                this._uiSetVisible(true);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   237
            }, this));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   238
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   239
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   240
        /* Sets up call to invoke original visibility handling when the animHidden animation is complete */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   241
        _bindAnimHidden : function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   242
            var animHidden = this.get("animHidden");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   243
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   244
            // Setup original visibility handling (for hide) after completing animation
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   245
            animHidden.after("end", Y.bind(function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   246
                this._uiSetVisible(false);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   247
            }, this));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   248
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   249
    });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   250
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   251
    // Create a new Overlay instance, and add AnimPlugin with a default duration of 2 seconds
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   252
    var overlay = new Y.Overlay({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   253
        srcNode: "#overlay",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   254
        width:"13em",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   255
        height:"10em",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   256
        visible:false,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   257
        shim:false,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   258
        align: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   259
            node: "#show", 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   260
            points: ["tl", "bl"]
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   261
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   262
        plugins : [{fn:AnimPlugin, cfg:{duration:2}}]
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   263
    });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   264
    overlay.render();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   265
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   266
    Y.on("click", function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   267
        overlay.show();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   268
    }, "#show");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   269
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   270
    Y.on("click", function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   271
        overlay.hide();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   272
    }, "#hide");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   273
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   274
    Y.on("click", function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   275
        overlay.unplug("fx");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   276
    }, "#unplug");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   277
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   278
    Y.on("click", function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   279
        overlay.unplug("fx");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   280
        overlay.plug(AnimPlugin, {duration:0.5});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   281
    }, "#plug");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   282
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   283
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   284
</script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   285
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   286
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   287
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   288
<h2>Creating an Animation Plugin For Overlay</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   289
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   290
<h3>Setting Up The YUI Instance</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   291
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   292
<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
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   293
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>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   294
 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   295
<pre class="code prettyprint">YUI({...}).use(&quot;overlay&quot;, &quot;anim&quot;, &quot;plugin&quot;, function(Y) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   296
    &#x2F;&#x2F; We&#x27;ll write our code here, after pulling in the default 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   297
    &#x2F;&#x2F; Overlay widget, the Animation utility and the 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   298
    &#x2F;&#x2F; Plugin base class
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   299
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   300
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   301
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   302
<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>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   303
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   304
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   305
<strong>Note:</strong> be sure to add the <code>yui3-skin-sam</code> classname to the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   306
page's <code>&lt;body&gt;</code> element or to a parent element of the widget in order to apply
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   307
the default CSS skin. See <a href="http://yuilibrary.com/yui/docs/tutorials/skins/">Understanding Skinning</a>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   308
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   309
<pre class="code prettyprint">&lt;body class=&quot;yui3-skin-sam&quot;&gt; &lt;!-- You need this skin class --&gt;</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   310
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   311
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   312
<h3>AnimPlugin Class Structure</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   313
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   314
<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>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   315
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   316
<p>Namely:</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   317
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   318
<ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   319
    <li>Setting up the constructor to invoke the superclass constructor</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   320
    <li>Setting up a <code>NAME</code> property, to identify the class</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   321
    <li>Setting up the default attributes, using the <code>ATTRS</code> property</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   322
    <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>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   323
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   324
    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   325
<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>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   326
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   327
<p>This basic structure is shown below:</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   328
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   329
<pre class="code prettyprint">&#x2F;* Animation Plugin Constructor *&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   330
function AnimPlugin(config) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   331
    AnimPlugin.superclass.constructor.apply(this, arguments);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   332
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   333
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   334
&#x2F;* 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   335
 * The namespace for the plugin. This will be the property on the widget, which will 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   336
 * reference the plugin instance, when it&#x27;s plugged in
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   337
 *&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   338
AnimPlugin.NS = &quot;fx&quot;;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   339
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   340
&#x2F;*
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   341
 * The NAME of the AnimPlugin class. Used to prefix events generated
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   342
 * by the plugin class.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   343
 *&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   344
AnimPlugin.NAME = &quot;animPlugin&quot;;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   345
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   346
&#x2F;*
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   347
 * The default set of attributes for the AnimPlugin class.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   348
 *&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   349
AnimPlugin.ATTRS = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   350
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   351
    &#x2F;*
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   352
     * Default duration. Used by the default animation implementations
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   353
     *&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   354
    duration : {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   355
        value: 0.2
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   356
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   357
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   358
    &#x2F;*
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   359
     * Default animation instance used for showing the widget (opacity fade-in)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   360
     *&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   361
    animVisible : {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   362
        valueFn : function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   363
            ...
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   364
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   365
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   366
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   367
    &#x2F;*
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   368
     * Default animation instance used for hiding the widget (opacity fade-out)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   369
     *&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   370
    animHidden : {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   371
        valueFn : function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   372
            ...
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   373
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   374
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   375
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   376
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   377
&#x2F;*
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   378
 * Extend the base plugin class
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   379
 *&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   380
Y.extend(AnimPlugin, Y.Plugin.Base, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   381
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   382
    &#x2F;&#x2F; Lifecycle methods
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   383
    initializer : function(config) { ... },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   384
    destructor : function() { ... },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   385
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   386
    &#x2F;&#x2F; Other plugin specific methods
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   387
    _uiAnimSetVisible : function(val) { ... },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   388
    _uiSetVisible : function(val) { ... },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   389
    ...
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   390
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   391
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   392
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   393
<h3>Attributes: animVisible, animHidden</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   394
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   395
<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>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   396
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   397
<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>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   398
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   399
<pre class="code prettyprint">animHidden : {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   400
    valueFn : function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   401
        return new Y.Anim({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   402
            node: this.get(&quot;host&quot;).get(&quot;boundingBox&quot;),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   403
            to: { opacity: 0 },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   404
            duration: this.get(&quot;duration&quot;)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   405
        });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   406
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   407
}</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   408
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   409
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   410
<p>The <code>animVisible</code> attribute is a little more interesting:</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   411
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   412
<pre class="code prettyprint">animVisible : {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   413
    valueFn : function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   414
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   415
        var host = this.get(&quot;host&quot;),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   416
            boundingBox = host.get(&quot;boundingBox&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   417
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   418
        var anim = new Y.Anim({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   419
            node: boundingBox,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   420
            to: { opacity: 1 },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   421
            duration: this.get(&quot;duration&quot;)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   422
        });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   423
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   424
        &#x2F;&#x2F; Set initial opacity, to avoid initial flicker
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   425
        if (!host.get(&quot;visible&quot;)) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   426
            boundingBox.setStyle(&quot;opacity&quot;, 0);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   427
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   428
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   429
        &#x2F;&#x2F; Clean up, on destroy. Where supported, remove
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   430
        &#x2F;&#x2F; opacity set using style. Else make 100% opaque
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   431
        anim.on(&quot;destroy&quot;, function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   432
            if (Y.UA.ie) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   433
                this.get(&quot;node&quot;).setStyle(&quot;opacity&quot;, 1);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   434
            } else {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   435
                this.get(&quot;node&quot;).setStyle(&quot;opacity&quot;, &quot;&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   436
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   437
        });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   438
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   439
        return anim;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   440
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   441
}</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   442
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   443
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   444
<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>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   445
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   446
<h3>Lifecycle Methods: initializer, destructor</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   447
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   448
<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>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   449
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   450
<pre class="code prettyprint">initializer : function(config) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   451
    this._bindAnimVisible();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   452
    this._bindAnimHidden();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   453
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   454
    this.after(&quot;animVisibleChange&quot;, this._bindAnimVisible);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   455
    this.after(&quot;animHiddenChange&quot;, this._bindAnimHidden);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   456
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   457
    &#x2F;&#x2F; Override default _uiSetVisible method, with custom animated method
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   458
    this.doBefore(&quot;_uiSetVisible&quot;, this._uiAnimSetVisible);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   459
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   460
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   461
...
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   462
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   463
_bindAnimVisible : function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   464
    var animVisible = this.get(&quot;animVisible&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   465
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   466
    animVisible.on(&quot;start&quot;, Y.bind(function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   467
        &#x2F;&#x2F; Setup original visibility handling (for show) before starting to animate
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   468
        this._uiSetVisible(true);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   469
    }, this));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   470
},
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   471
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   472
_bindAnimHidden : function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   473
    var animHidden = this.get(&quot;animHidden&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   474
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   475
    animHidden.after(&quot;end&quot;, Y.bind(function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   476
        &#x2F;&#x2F; Setup original visibility handling (for hide) after completing animation
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   477
        this._uiSetVisible(false);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   478
    }, this));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   479
}</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   480
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   481
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   482
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   483
However the key part of the <code>initializer</code> method is the call to <code>this.doBefore(&quot;_uiSetVisible&quot;, 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.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   484
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   485
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   486
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>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   487
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   488
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   489
<p>Using <code>Plugin</code>'s <code>doBefore&#x2F;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>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   490
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   491
<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>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   492
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   493
<pre class="code prettyprint">destructor : function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   494
    this.get(&quot;animVisible&quot;).stop().destroy();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   495
    this.get(&quot;animHidden&quot;).stop().destroy();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   496
},</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   497
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   498
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   499
<h3>The Animated Visibility Method</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   500
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   501
<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>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   502
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   503
<pre class="code prettyprint">_uiAnimSetVisible : function(val) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   504
    if (this.get(&quot;host&quot;).get(&quot;rendered&quot;)) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   505
        if (val) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   506
            this.get(&quot;animHidden&quot;).stop();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   507
            this.get(&quot;animVisible&quot;).run();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   508
        } else {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   509
            this.get(&quot;animVisible&quot;).stop();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   510
            this.get(&quot;animHidden&quot;).run();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   511
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   512
        return new Y.Do.Halt();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   513
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   514
}</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   515
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   516
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   517
<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. 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   518
<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>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   519
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   520
<h3>The Original Visibility Method</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   521
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   522
<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>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   523
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   524
<pre class="code prettyprint">_uiSetVisible : function(val) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   525
    var host = this.get(&quot;host&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   526
    if (!val) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   527
        host.get(&quot;boundingBox&quot;).addClass(host.getClassName(&quot;hidden&quot;));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   528
    } else {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   529
        host.get(&quot;boundingBox&quot;).removeClass(host.getClassName(&quot;hidden&quot;));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   530
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   531
}</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   532
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   533
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   534
<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>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   535
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   536
<h3>Using The Plugin</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   537
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   538
<p>All objects which derive from <a href="http://yuilibrary.com/yui/docs/api/Base.html">Base</a> are <a href="http://yuilibrary.com/yui/docs/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>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   539
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   540
<pre class="code prettyprint">var overlay = new Y.Overlay({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   541
    contentBox: &quot;#overlay&quot;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   542
    width:&quot;10em&quot;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   543
    height:&quot;10em&quot;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   544
    visible:false,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   545
    shim:false,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   546
    align: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   547
        node: &quot;#show&quot;, 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   548
        points: [&quot;tl&quot;, &quot;bl&quot;]
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   549
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   550
    plugins : [{fn:AnimPlugin, cfg:{duration:2}}]
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   551
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   552
overlay.render();</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   553
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   554
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   555
<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>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   556
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   557
<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>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   558
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   559
<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>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   560
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   561
<pre class="code prettyprint">&#x2F;&#x2F; Listener for the &quot;Unplug AnimPlugin&quot; button, 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   562
&#x2F;&#x2F; removes the AnimPlugin from the overlay instance
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   563
Y.on(&quot;click&quot;, function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   564
    overlay.unplug(&quot;fx&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   565
}, &quot;#unplug&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   566
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   567
&#x2F;&#x2F; Listener for the &quot;Plug AnimPlugin&quot; button, 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   568
&#x2F;&#x2F; removes the AnimPlugin from the overlay instance, 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   569
&#x2F;&#x2F; and re-adds it with a new, shorter duration value.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   570
Y.on(&quot;click&quot;, function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   571
    overlay.unplug(&quot;fx&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   572
    overlay.plug(AnimPlugin, {duration:0.5});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   573
}, &quot;#plug&quot;);</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   574
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   575
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   576
<h2>Complete Example Source</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   577
<pre class="code prettyprint">&lt;div id=&quot;overlay&quot; class=&quot;yui3-overlay-loading&quot;&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   578
    &lt;div class=&quot;yui3-widget-hd&quot;&gt;Overlay Header&lt;&#x2F;div&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   579
    &lt;div class=&quot;yui3-widget-bd&quot;&gt;Overlay Body&lt;&#x2F;div&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   580
    &lt;div class=&quot;yui3-widget-ft&quot;&gt;Overlay Footer&lt;&#x2F;div&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   581
&lt;&#x2F;div&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   582
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   583
&lt;button type=&quot;button&quot; id=&quot;show&quot;&gt;Show&lt;&#x2F;button&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   584
&lt;button type=&quot;button&quot; id=&quot;hide&quot;&gt;Hide&lt;&#x2F;button&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   585
&lt;button type=&quot;button&quot; id=&quot;unplug&quot;&gt;Unplug AnimPlugin&lt;&#x2F;button&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   586
&lt;button type=&quot;button&quot; id=&quot;plug&quot;&gt;Plug AnimPlugin (duration:0.5)&lt;&#x2F;button&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   587
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   588
&lt;script type=&quot;text&#x2F;javascript&quot;&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   589
YUI().use(&quot;overlay&quot;, &quot;anim&quot;, &quot;plugin&quot;, function(Y) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   590
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   591
    &#x2F;* Animation Plugin Constructor *&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   592
    function AnimPlugin(config) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   593
        AnimPlugin.superclass.constructor.apply(this, arguments);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   594
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   595
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   596
    &#x2F;* 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   597
     * The namespace for the plugin. This will be the property on the widget, which will 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   598
     * reference the plugin instance, when it&#x27;s plugged in
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   599
     *&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   600
    AnimPlugin.NS = &quot;fx&quot;;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   601
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   602
    &#x2F;*
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   603
     * The NAME of the AnimPlugin class. Used to prefix events generated
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   604
     * by the plugin class.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   605
     *&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   606
    AnimPlugin.NAME = &quot;animPlugin&quot;;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   607
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   608
    &#x2F;*
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   609
     * The default set of attributes for the AnimPlugin class.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   610
     *&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   611
    AnimPlugin.ATTRS = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   612
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   613
        &#x2F;*
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   614
         * Default duration. Used by the default animation implementations
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   615
         *&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   616
        duration : {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   617
            value: 0.2
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   618
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   619
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   620
        &#x2F;*
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   621
         * Default animation instance used for showing the widget (opacity fade-in)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   622
         *&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   623
        animVisible : {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   624
            valueFn : function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   625
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   626
                var host = this.get(&quot;host&quot;),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   627
                    boundingBox = host.get(&quot;boundingBox&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   628
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   629
                var anim = new Y.Anim({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   630
                    node: boundingBox,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   631
                    to: { opacity: 1 },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   632
                    duration: this.get(&quot;duration&quot;)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   633
                });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   634
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   635
                &#x2F;&#x2F; Set initial opacity, to avoid initial flicker
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   636
                if (!host.get(&quot;visible&quot;)) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   637
                    boundingBox.setStyle(&quot;opacity&quot;, 0);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   638
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   639
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   640
                &#x2F;&#x2F; Clean up, on destroy. Where supported, remove
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   641
                &#x2F;&#x2F; opacity set using style. Else make 100% opaque
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   642
                anim.on(&quot;destroy&quot;, function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   643
                    if (Y.UA.ie) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   644
                        this.get(&quot;node&quot;).setStyle(&quot;opacity&quot;, 1);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   645
                    } else {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   646
                        this.get(&quot;node&quot;).setStyle(&quot;opacity&quot;, &quot;&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   647
                    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   648
                });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   649
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   650
                return anim;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   651
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   652
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   653
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   654
        &#x2F;*
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   655
         * Default animation instance used for hiding the widget (opacity fade-out)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   656
         *&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   657
        animHidden : {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   658
            valueFn : function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   659
                return new Y.Anim({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   660
                    node: this.get(&quot;host&quot;).get(&quot;boundingBox&quot;),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   661
                    to: { opacity: 0 },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   662
                    duration: this.get(&quot;duration&quot;)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   663
                });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   664
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   665
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   666
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   667
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   668
    &#x2F;*
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   669
     * Extend the base plugin class
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   670
     *&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   671
    Y.extend(AnimPlugin, Y.Plugin.Base, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   672
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   673
        &#x2F;*
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   674
         * Initialization code. Called when the 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   675
         * plugin is instantiated (whenever it&#x27;s 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   676
         * plugged into the host)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   677
         *&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   678
        initializer : function(config) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   679
            this._bindAnimVisible();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   680
            this._bindAnimHidden();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   681
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   682
            this.after(&quot;animVisibleChange&quot;, this._bindAnimVisible);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   683
            this.after(&quot;animHiddenChange&quot;, this._bindAnimHidden);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   684
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   685
            &#x2F;&#x2F; Override default _uiSetVisible method, with custom animated method
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   686
            this.doBefore(&quot;_uiSetVisible&quot;, this._uiAnimSetVisible);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   687
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   688
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   689
        &#x2F;*
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   690
         * Destruction code. Invokes destroy in the individual animation instances,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   691
         * and lets them take care of cleaning up any state.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   692
         *&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   693
        destructor : function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   694
            this.get(&quot;animVisible&quot;).stop().destroy();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   695
            this.get(&quot;animHidden&quot;).stop().destroy();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   696
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   697
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   698
        &#x2F;*
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   699
         * The custom animation method, added by the plugin.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   700
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   701
         * This method replaces the default _uiSetVisible handler
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   702
         * Widget provides, by injecting itself before _uiSetVisible,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   703
         * (using Plugins before method) and preventing the default
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   704
         * behavior.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   705
         *&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   706
        _uiAnimSetVisible : function(val) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   707
            if (this.get(&quot;host&quot;).get(&quot;rendered&quot;)) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   708
                if (val) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   709
                    this.get(&quot;animHidden&quot;).stop();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   710
                    this.get(&quot;animVisible&quot;).run();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   711
                } else {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   712
                    this.get(&quot;animVisible&quot;).stop();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   713
                    this.get(&quot;animHidden&quot;).run();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   714
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   715
                return new Y.Do.Prevent(&quot;AnimPlugin prevented default show&#x2F;hide&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   716
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   717
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   718
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   719
        &#x2F;*
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   720
         * The original Widget _uiSetVisible implementation
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   721
         *&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   722
        _uiSetVisible : function(val) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   723
            var host = this.get(&quot;host&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   724
            var hiddenClass = host.getClassName(&quot;hidden&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   725
            if (!val) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   726
                host.get(&quot;boundingBox&quot;).addClass(hiddenClass);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   727
            } else {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   728
                host.get(&quot;boundingBox&quot;).removeClass(hiddenClass);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   729
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   730
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   731
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   732
        &#x2F;* Sets up call to invoke original visibility handling when the animVisible animation is started *&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   733
        _bindAnimVisible : function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   734
            var animVisible = this.get(&quot;animVisible&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   735
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   736
            &#x2F;&#x2F; Setup original visibility handling (for show) before starting to animate
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   737
            animVisible.on(&quot;start&quot;, Y.bind(function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   738
                this._uiSetVisible(true);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   739
            }, this));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   740
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   741
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   742
        &#x2F;* Sets up call to invoke original visibility handling when the animHidden animation is complete *&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   743
        _bindAnimHidden : function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   744
            var animHidden = this.get(&quot;animHidden&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   745
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   746
            &#x2F;&#x2F; Setup original visibility handling (for hide) after completing animation
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   747
            animHidden.after(&quot;end&quot;, Y.bind(function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   748
                this._uiSetVisible(false);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   749
            }, this));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   750
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   751
    });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   752
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   753
    &#x2F;&#x2F; Create a new Overlay instance, and add AnimPlugin with a default duration of 2 seconds
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   754
    var overlay = new Y.Overlay({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   755
        srcNode: &quot;#overlay&quot;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   756
        width:&quot;13em&quot;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   757
        height:&quot;10em&quot;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   758
        visible:false,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   759
        shim:false,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   760
        align: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   761
            node: &quot;#show&quot;, 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   762
            points: [&quot;tl&quot;, &quot;bl&quot;]
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   763
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   764
        plugins : [{fn:AnimPlugin, cfg:{duration:2}}]
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   765
    });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   766
    overlay.render();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   767
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   768
    Y.on(&quot;click&quot;, function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   769
        overlay.show();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   770
    }, &quot;#show&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   771
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   772
    Y.on(&quot;click&quot;, function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   773
        overlay.hide();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   774
    }, &quot;#hide&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   775
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   776
    Y.on(&quot;click&quot;, function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   777
        overlay.unplug(&quot;fx&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   778
    }, &quot;#unplug&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   779
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   780
    Y.on(&quot;click&quot;, function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   781
        overlay.unplug(&quot;fx&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   782
        overlay.plug(AnimPlugin, {duration:0.5});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   783
    }, &quot;#plug&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   784
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   785
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   786
&lt;&#x2F;script&gt;</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   787
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   788
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   789
            </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   790
        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   791
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   792
        <div class="yui3-u-1-4">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   793
            <div class="sidebar">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   794
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   795
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   796
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   797
                    <div class="sidebox">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   798
                        <div class="hd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   799
                            <h2 class="no-toc">Examples</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   800
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   801
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   802
                        <div class="bd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   803
                            <ul class="examples">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   804
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   805
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   806
                                        <li data-description="Shows how to instantiate a basic Overlay instance, and use the Overlay&#x27;s basic XY positioning support.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   807
                                            <a href="overlay-xy.html">Basic XY Positioning</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   808
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   809
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   810
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   811
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   812
                                        <li data-description="Shows how to create a simple tooltip incorporating the overlay shim feature.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   813
                                            <a href="overlay-tooltip.html">Simple Tooltip</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   814
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   815
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   816
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   817
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   818
                                        <li data-description="Shows how to use the Overlay&#x27;s XY alignment support, to align the Overlay relative to another element, or to the viewport.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   819
                                            <a href="overlay-align.html">Alignment Support</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   820
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   821
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   822
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   823
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   824
                                        <li data-description="Shows how to use the Overlay&#x27;s zindex and shim support when positioning Overlays above other elements on the page.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   825
                                            <a href="overlay-stack.html">Stack Support</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   826
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   827
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   828
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   829
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   830
                                        <li data-description="Shows how to modify content in the Overlay&#x27;s header, body and footer sections.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   831
                                            <a href="overlay-stdmod.html">Standard Module Support</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   832
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   833
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   834
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   835
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   836
                                        <li data-description="Shows how to use Overlay&#x27;s constrainment support, to limit the XY value which can be set for an Overlay.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   837
                                            <a href="overlay-constrain.html">Constrain Support</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   838
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   839
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   840
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   841
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   842
                                        <li data-description="Shows how to create a simple plugin to retrieve content for the Overlay using the io utility.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   843
                                            <a href="overlay-io-plugin.html">IO Plugin</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   844
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   845
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   846
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   847
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   848
                                        <li data-description="Shows how to create a simple plugin to animate the Overlay&#x27;s movement and visibility.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   849
                                            <a href="overlay-anim-plugin.html">Animation Plugin</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   850
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   851
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   852
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   853
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   854
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   855
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   856
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   857
                            </ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   858
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   859
                    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   860
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   861
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   862
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   863
                    <div class="sidebox">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   864
                        <div class="hd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   865
                            <h2 class="no-toc">Examples That Use This Component</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   866
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   867
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   868
                        <div class="bd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   869
                            <ul class="examples">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   870
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   871
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   872
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   873
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   874
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   875
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   876
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   877
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   878
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   879
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   880
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   881
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   882
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   883
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   884
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   885
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   886
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   887
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   888
                                        <li data-description="Creating an accessible menu button using the Focus Manager Node Plugin, Event&#x27;s delegation support and mouseenter event, along with the Overlay widget and Node&#x27;s support for the WAI-ARIA Roles and States.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   889
                                            <a href="../node-focusmanager/node-focusmanager-button.html">Accessible Menu Button</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   890
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   891
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   892
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   893
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   894
                                        <li data-description="Use StyleSheet to adjust the CSS rules applying a page theme from user input">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   895
                                            <a href="../stylesheet/stylesheet-theme.html">Adjusting a Page Theme on the Fly</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   896
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   897
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   898
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   899
                            </ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   900
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   901
                    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   902
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   903
            </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   904
        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   905
    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   906
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   907
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   908
<script src="../assets/vendor/prettify/prettify-min.js"></script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   909
<script>prettyPrint();</script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   910
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   911
<script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   912
YUI.Env.Tests = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   913
    examples: [],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   914
    project: '../assets',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   915
    assets: '../assets/overlay',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   916
    name: 'overlay-anim-plugin',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   917
    title: 'Animation Plugin',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   918
    newWindow: '',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   919
    auto:  false 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   920
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   921
YUI.Env.Tests.examples.push('overlay-xy');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   922
YUI.Env.Tests.examples.push('overlay-tooltip');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   923
YUI.Env.Tests.examples.push('overlay-align');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   924
YUI.Env.Tests.examples.push('overlay-stack');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   925
YUI.Env.Tests.examples.push('overlay-stdmod');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   926
YUI.Env.Tests.examples.push('overlay-constrain');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   927
YUI.Env.Tests.examples.push('overlay-io-plugin');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   928
YUI.Env.Tests.examples.push('overlay-anim-plugin');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   929
YUI.Env.Tests.examples.push('node-focusmanager-button');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   930
YUI.Env.Tests.examples.push('stylesheet-theme');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   931
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   932
</script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   933
<script src="../assets/yui/test-runner.js"></script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   934
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   935
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   936
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   937
</body>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   938
</html>