diff options
Diffstat (limited to 'chromium/third_party/catapult/third_party/polymer2/bower_components/iron-fit-behavior/demo/index.html')
-rw-r--r-- | chromium/third_party/catapult/third_party/polymer2/bower_components/iron-fit-behavior/demo/index.html | 175 |
1 files changed, 175 insertions, 0 deletions
diff --git a/chromium/third_party/catapult/third_party/polymer2/bower_components/iron-fit-behavior/demo/index.html b/chromium/third_party/catapult/third_party/polymer2/bower_components/iron-fit-behavior/demo/index.html new file mode 100644 index 00000000000..3b166d9be1f --- /dev/null +++ b/chromium/third_party/catapult/third_party/polymer2/bower_components/iron-fit-behavior/demo/index.html @@ -0,0 +1,175 @@ +<!doctype html> +<!-- +@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 +--> +<html> + +<head> + + <title>iron-fit-behavior demo</title> + + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> + <meta name="viewport" content="width=device-width, minimum-scale=1.0, initial-scale=1, user-scalable=yes"> + + <script src="../../webcomponentsjs/webcomponents-lite.js"></script> + <link rel="import" href="simple-fit.html"> + <link rel="import" href="../../iron-demo-helpers/demo-snippet.html"> + <link rel="import" href="../../iron-demo-helpers/demo-pages-shared-styles.html"> + + <custom-style><style is="custom-style" include="demo-pages-shared-styles"> + .centered { + min-width: 600px; + } + demo-snippet { + --demo-snippet-code: { + max-height: 250px; + } + } + </style></custom-style> + +</head> + +<body unresolved class="centered"> + <h3> + An element with <code>IronFitBehavior</code> can be centered in + <code>fitInto</code> or positioned around a <code>positionTarget</code> + </h3> + <demo-snippet> + <template> + <style> + .target { + cursor: pointer; + text-align: center; + display: inline-block; + box-sizing: border-box; + border: 1px solid; + width: 120px; + padding: 26px 0; + margin: 8px; + } + + #myFit { + z-index: 10; + padding: 20px; + overflow: auto; + min-width: 100px; + min-height: 100px; + } + + button { + background-color: white; + border-radius: 5px; + border-width: 1px; + } + button.selected { + background-color: #b3e5fc; + } + </style> + <dom-bind><template is="dom-bind"> + <template is="dom-repeat" items="[[containers]]"> + <div class="target" on-tap="updatePositionTarget">Target</div> + </template> + <simple-fit id="myFit" auto-fit-on-attach> + <h2>Align</h2> + <p> + <button on-tap="updateAlign" vertical-align="top">top</button> + <button on-tap="updateAlign" vertical-align="middle">middle</button> + <button on-tap="updateAlign" vertical-align="bottom">bottom</button> + <button on-tap="updateAlign" vertical-align="auto">auto</button> + <button on-tap="updateAlign" vertical-align>null</button> + </p> + <p> + <button on-tap="updateAlign" horizontal-align="left">left</button> + <button on-tap="updateAlign" horizontal-align="center">center</button> + <button on-tap="updateAlign" horizontal-align="right">right</button> + <button on-tap="updateAlign" horizontal-align="auto">auto</button> + <button on-tap="updateAlign" horizontal-align>null</button> + </p> + <button on-tap="toggleNoOverlap">no overlap</button> + <button on-tap="toggleDynamicAlign">dynamic align</button> + </simple-fit> + <script> + + var template = document.querySelector('template[is="dom-bind"]'); + + template.containers = new Array(30); + + template.updatePositionTarget = function(e) { + var target = Polymer.dom(e).rootTarget; + target = myFit.positionTarget === target ? myFit._defaultPositionTarget : target; + myFit.positionTarget.style.backgroundColor = ''; + target.style.backgroundColor = 'orange'; + myFit.positionTarget = target; + refit(); + }; + + template.updateAlign = function(e) { + var target = Polymer.dom(e).rootTarget; + if (target.hasAttribute('horizontal-align')) { + myFit.horizontalAlign = target.getAttribute('horizontal-align'); + var children = target.parentNode.querySelectorAll('[horizontal-align]'); + for (var i = 0; i < children.length; i++) { + toggleClass(children[i], 'selected', children[i] === target); + } + } + if (target.hasAttribute('vertical-align')) { + myFit.verticalAlign = target.getAttribute('vertical-align'); + var children = target.parentNode.querySelectorAll('[vertical-align]'); + for (var i = 0; i < children.length; i++) { + toggleClass(children[i], 'selected', children[i] === target); + } + } + refit(); + }; + + template.toggleNoOverlap = function(e) { + myFit.noOverlap = !myFit.noOverlap; + toggleClass(Polymer.dom(e).rootTarget, 'selected', myFit.noOverlap); + refit(); + }; + + template.toggleDynamicAlign = function(e) { + myFit.dynamicAlign = !myFit.dynamicAlign; + toggleClass(Polymer.dom(e).rootTarget, 'selected', myFit.dynamicAlign); + refit(); + }; + + // Support hybrid mode + var templatev1 = document.querySelector('dom-bind'); + templatev1.containers = template.containers; + templatev1.updatePositionTarget = template.updatePositionTarget; + templatev1.updateAlign = template.updateAlign; + templatev1.toggleNoOverlap = template.toggleNoOverlap; + templatev1.toggleDynamicAlign = template.toggleDynamicAlign; + + // Listen for resize and scroll on window. + window.addEventListener('resize', refit); + window.addEventListener('scroll', refit); + + var _raf = null; + function refit() { + _raf && window.cancelAnimationFrame(_raf); + _raf = window.requestAnimationFrame(function() { + _raf = null; + myFit.refit(); + }); + } + + function toggleClass(element, cssClass, condition) { + element.classList[condition ? 'add' : 'remove'](cssClass); + } + </script> + </template></dom-bind> + </template> + </demo-snippet> + +</body> + +</html> |