src/cm/media/js/lib/yui/yui3.0.0/examples/dd/anim-drop_source.html
author raph
Mon, 23 Nov 2009 15:14:29 +0100
changeset 0 40c8f766c9b8
permissions -rw-r--r--
import from internal svn r 4007
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     1
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     2
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     3
<html>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     4
<head>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     5
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     6
    <title>Animated Drop Targets</title>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     7
    <link rel="stylesheet" href="http://yui.yahooapis.com/2.5.2/build/reset-fonts-grids/reset-fonts-grids.css" type="text/css">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     8
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     9
    <script type="text/javascript" src="../../build/yui/yui-min.js"></script>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    10
    <style type="text/css" media="screen">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    11
        p, h2 {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    12
            margin: 1em;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    13
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    14
        body {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    15
            text-align: left;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    16
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    17
        .anim {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    18
            position: relative;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    19
            height: 50px;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    20
            width: 100px;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    21
            border: 1px solid black;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    22
            background-color: #00B8BF;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    23
            top: 100px;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    24
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    25
        #drag {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    26
            height: 50px;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    27
            width: 50px;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    28
            border: 1px solid black;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    29
            background-color: #004C6D;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    30
            color: white;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    31
            cursor: move;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    32
            z-index: 5;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    33
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    34
        #dock {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    35
            height: 600px;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    36
            width: 75px;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    37
            background-color: #D00050;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    38
            border: 1px solid black;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    39
            position: absolute;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    40
            top: 5px;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    41
            right: 0px;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    42
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    43
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    44
        .anim.yui-dd-drop-over {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    45
            background-color: #EDFF9F;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    46
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    47
        .anim.done {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    48
            background-color: white;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    49
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    50
        #drag1.yui-dd-drag-over {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    51
            opacity: .5;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    52
            filter: alpha(opacity=50);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    53
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    54
	</style>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    55
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    56
<body class="yui-reset yui-fonts">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    57
        <div id="dock"></div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    58
        <div id="drag">Drag #1</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    59
        <div id="anim1" class="anim">Anim #1</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    60
        <div id="anim2" class="anim">Anim #2</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    61
        <div id="anim3" class="anim">Anim #3</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    62
        <div id="anim4" class="anim">Anim #4</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    63
        <div id="anim5" class="anim">Anim #5</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    64
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    65
<script type="text/javascript">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    66
YUI({base:"../../build/", timeout: 10000}).use('dd', 'anim', function(Y) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    67
    //Get the node #drag
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    68
    var d = Y.Node.get('#drag');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    69
    d.plug(Y.Plugin.Drag, { dragMode: 'intersect' });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    70
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    71
    //Get all the div's with the class anim
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    72
    var anims = Y.Node.all('div.anim');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    73
    var counter = 0;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    74
    anims.each(function(v, k) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    75
        //Get a reference to the Node instance
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    76
        var a = v;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    77
        counter++;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    78
        //Add the FX plugin
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    79
        a.plug(Y.Plugin.NodeFX);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    80
        //Add the Drop plugin
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    81
        a.plug(Y.Plugin.Drop);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    82
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    83
        //Set the attributes on the animation
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    84
        a.fx.setAttrs({
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    85
            from: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    86
                left: 0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    87
            },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    88
            to: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    89
                curve: function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    90
                    var points = [],
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    91
                        n = 10;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    92
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    93
                    for (var i = 0; i < n; ++i) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    94
                        points.push([
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    95
                            Math.floor(Math.random()*Y.DOM.winWidth() - 60 - a.get('offsetWidth')),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    96
                            Math.floor(Math.random()*Y.DOM.winHeight() - a.get('offsetHeight'))
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    97
                        ]);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    98
                    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    99
                    return points;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   100
                }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   101
            },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   102
            //Do the animation 20 times
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   103
            iterations: 20,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   104
            //Alternate it so it "bounces" across the screen
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   105
            direction: 'alternate',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   106
            //Give all of them a different duration so we get different speeds.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   107
            duration: ((counter * 1.75) + 1)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   108
        });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   109
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   110
        //When this drop is entered, pause the fx
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   111
        a.drop.on('drop:enter', function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   112
            this.fx.pause();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   113
        }, a);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   114
        //When the drop is exited, run the fx again
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   115
        a.drop.on('drop:exit', function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   116
            this.fx.run();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   117
        }, a);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   118
        //When a drop is on the node, do something special
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   119
        a.drop.on('drop:hit', function(e) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   120
            //Stop the animation
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   121
            this.fx.stop();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   122
            //remove the tween listener
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   123
            this.fx.unsubscribeAll('tween');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   124
            //move it to the dock
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   125
            this.fx.setAttrs({
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   126
                from: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   127
                    opacity: 1
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   128
                },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   129
                to: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   130
                    height: 50,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   131
                    width: 50,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   132
                    left: function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   133
                        var dW = Y.Node.get('body').get('viewportRegion').right;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   134
                        return ((dW - 60)); //Minus 60 for the dock
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   135
                    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   136
                    top: 15,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   137
                    opacity: .5
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   138
                },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   139
                direction: 'normal',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   140
                iterations: 1,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   141
                duration: .5,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   142
                //We are using reverse above for the "bouncing", reset it here.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   143
                reverse: false
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   144
            });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   145
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   146
            //On end, add a class and destroy the target
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   147
            this.fx.on('end', function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   148
                this.drop.get('node').addClass('done');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   149
                this.drop.destroy();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   150
            }, this);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   151
            //Run this animation
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   152
            this.fx.run();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   153
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   154
            //others that were dropped on.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   155
            Y.each(e.others, function(v, k) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   156
                var node = v.get('node');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   157
                node.fx.run();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   158
            });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   159
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   160
        }, a);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   161
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   162
        //on tween of the original anim, we need to sync the drop's shim.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   163
        a.fx.on('tween', function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   164
            //Do we have an active Drag?
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   165
            if (Y.DD.DDM.activeDrag) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   166
                //Size this shim
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   167
                this.drop.sizeShim();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   168
                //Force an over target check since we might not be moving the mouse.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   169
                Y.Lang.later(0, a, function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   170
                    this.drop._handleTargetOver();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   171
                });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   172
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   173
        }, a);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   174
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   175
        a.fx.run();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   176
    });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   177
});
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   178
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   179
</script>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   180
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   181
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   182
</body>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   183
</html>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   184