diff options
Diffstat (limited to 'catapult/third_party/polymer/components/neon-animation/demo/reprojection/animated-grid.html')
-rw-r--r-- | catapult/third_party/polymer/components/neon-animation/demo/reprojection/animated-grid.html | 167 |
1 files changed, 167 insertions, 0 deletions
diff --git a/catapult/third_party/polymer/components/neon-animation/demo/reprojection/animated-grid.html b/catapult/third_party/polymer/components/neon-animation/demo/reprojection/animated-grid.html new file mode 100644 index 00000000..f1244b44 --- /dev/null +++ b/catapult/third_party/polymer/components/neon-animation/demo/reprojection/animated-grid.html @@ -0,0 +1,167 @@ +<!-- +@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="../../../iron-flex-layout/iron-flex-layout.html"> +<link rel="import" href="../../neon-shared-element-animatable-behavior.html"> +<link rel="import" href="../../../paper-styles/typography.html"> +<link rel="import" href="../../../paper-styles/color.html"> +<link rel="import" href="../shared-styles.html"> + +<dom-module id="animated-grid"> + <template> + <style include="shared-styles"></style> + <style> + + :host { + display: block; + background: #000; + } + + .tile { + display: inline-block; + float: left; + vertical-align: top; + width: calc(100% / 6); + height: calc(100% / 3); + + @apply(--paper-font-title); + @apply(--layout-vertical); + @apply(--layout-center-center); + } + + .tile:nth-of-type(1) { + width: calc(100% / 3); + height: calc(100% / 3 * 2); + } + + .tile:nth-of-type(4) { + width: calc(100% / 3); + } + + .tile:nth-of-type(5) { + width: calc(100% / 3); + height: calc(100% / 3 * 2); + } + + .tile:nth-of-type(8) { + width: calc(100% / 3); + height: calc(100% / 3); + } + + .tile:nth-of-type(9) { + position: absolute; + top: calc(100% / 3 * 2); + left: 0; + width: calc(100% / 6); + height: calc(100% / 3); + } + + .tile:nth-of-type(10) { + position: absolute; + top: calc(100% / 3 * 2); + left: calc(100% / 6);; + width: calc(100% / 6); + height: calc(100% / 3); + } + + </style> + + <template is="dom-repeat" items="[[config]]"> + <div class$="[[_computeTileClass(item.color)]]"> + <span>[[item.value]]</span> + </div> + </template> + + </template> + +</dom-module> + +<script> + + Polymer({ + + is: 'animated-grid', + + behaviors: [ + Polymer.NeonSharedElementAnimatableBehavior + ], + + properties: { + + config: { + type: Array, + value: function() { + return [ + {value: 1, color: 'blue'}, + {value: 2, color: 'red'}, + {value: 3, color: 'blue'}, + {value: 4, color: 'green'}, + {value: 5, color: 'yellow'}, + {value: 6, color: 'blue'}, + {value: 7, color: 'red'}, + {value: 8, color: 'green'}, + {value: 9, color: 'yellow'}, + {value: 10, color: 'red'} + ] + } + }, + + animationConfig: { + type: Object, + value: function() { + return { + 'exit': [{ + name: 'ripple-animation', + id: 'ripple', + fromPage: this + }, { + name: 'hero-animation', + id: 'hero', + fromPage: this + }] + } + } + } + + }, + + listeners: { + click: '_onClick' + }, + + _computeTileClass: function(color) { + return 'tile ' + color + '-300'; + }, + + _onClick: function(event) { + var target = event.target; + while (target !== this && !target._templateInstance) { + target = target.parentNode; + } + + // configure the page animation + this.sharedElements = { + 'hero': target, + 'ripple': target + }; + this.animationConfig['exit'][0].gesture = { + x: event.x, + y: event.y + }; + + this.fire('tile-click', { + tile: target, + data: target._templateInstance.item + }); + } + + }); + +</script> |