<!-- @license Copyright (c) 2015 The Polymer Project Authors. All rights reserved. This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as part of the polymer project is also subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt --> <link rel="import" href="../polymer/polymer.html"> <link rel="import" href="../neon-animation/web-animations.html"> <link rel="import" href="../neon-animation/neon-animation-behavior.html"> <script> Polymer({ is: 'paper-menu-grow-height-animation', behaviors: [ Polymer.NeonAnimationBehavior ], configure: function(config) { var node = config.node; var rect = node.getBoundingClientRect(); var height = rect.height; this._effect = new KeyframeEffect(node, [{ height: (height / 2) + 'px' }, { height: height + 'px' }], this.timingFromConfig(config)); return this._effect; } }); Polymer({ is: 'paper-menu-grow-width-animation', behaviors: [ Polymer.NeonAnimationBehavior ], configure: function(config) { var node = config.node; var rect = node.getBoundingClientRect(); var width = rect.width; this._effect = new KeyframeEffect(node, [{ width: (width / 2) + 'px' }, { width: width + 'px' }], this.timingFromConfig(config)); return this._effect; } }); Polymer({ is: 'paper-menu-shrink-width-animation', behaviors: [ Polymer.NeonAnimationBehavior ], configure: function(config) { var node = config.node; var rect = node.getBoundingClientRect(); var width = rect.width; this._effect = new KeyframeEffect(node, [{ width: width + 'px' }, { width: width - (width / 20) + 'px' }], this.timingFromConfig(config)); return this._effect; } }); Polymer({ is: 'paper-menu-shrink-height-animation', behaviors: [ Polymer.NeonAnimationBehavior ], configure: function(config) { var node = config.node; var rect = node.getBoundingClientRect(); var height = rect.height; var top = rect.top; this.setPrefixedProperty(node, 'transformOrigin', '0 0'); this._effect = new KeyframeEffect(node, [{ height: height + 'px', transform: 'translateY(0)' }, { height: height / 2 + 'px', transform: 'translateY(-20px)' }], this.timingFromConfig(config)); return this._effect; } }); </script>