Home | History | Annotate | Download | only in animations
      1 <!--
      2 @license
      3 Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
      4 This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
      5 The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
      6 The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
      7 Code distributed by Google as part of the polymer project is also
      8 subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
      9 -->
     10 
     11 <link rel="import" href="../../polymer/polymer.html">
     12 <link rel="import" href="../neon-animation-behavior.html">
     13 <link rel="import" href="../web-animations.html">
     14 
     15 <!--
     16 `<scale-down-animation>` animates the scale transform of an element from 1 to 0. By default it
     17 scales in both the x and y axes.
     18 
     19 Configuration:
     20 ```
     21 {
     22   name: 'scale-down-animation',
     23   node: <node>,
     24   axis: 'x' | 'y' | '',
     25   transformOrigin: <transform-origin>,
     26   timing: <animation-timing>
     27 }
     28 ```
     29 -->
     30 
     31 <script>
     32 
     33   Polymer({
     34 
     35     is: 'scale-down-animation',
     36 
     37     behaviors: [
     38       Polymer.NeonAnimationBehavior
     39     ],
     40 
     41     configure: function(config) {
     42       var node = config.node;
     43 
     44       var scaleProperty = 'scale(0, 0)';
     45       if (config.axis === 'x') {
     46         scaleProperty = 'scale(0, 1)';
     47       } else if (config.axis === 'y') {
     48         scaleProperty = 'scale(1, 0)';
     49       }
     50 
     51       this._effect = new KeyframeEffect(node, [
     52         {'transform': 'scale(1,1)'},
     53         {'transform': scaleProperty}
     54       ], this.timingFromConfig(config));
     55 
     56       if (config.transformOrigin) {
     57         this.setPrefixedProperty(node, 'transformOrigin', config.transformOrigin);
     58       }
     59 
     60       return this._effect;
     61     }
     62 
     63   });
     64 
     65 </script>
     66