<!-- @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 --> <!doctype html> <html> <head> <title>iron-list and paper-scroll-header-panel demo</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, minimum-scale=1.0, initial-scale=1, user-scalable=yes"> <meta name="mobile-web-app-capable" content="yes"> <meta name="apple-mobile-web-app-capable" content="yes"> <script src="../../webcomponentsjs/webcomponents-lite.js"></script> <link rel="import" href="../../polymer/polymer.html"> <link rel="import" href="../../iron-flex-layout/iron-flex-layout.html"> <link rel="import" href="../../paper-toolbar/paper-toolbar.html"> <link rel="import" href="../../paper-scroll-header-panel/paper-scroll-header-panel.html"> <link rel="import" href="../../paper-icon-button/paper-icon-button.html"> <link rel="import" href="../../iron-ajax/iron-ajax.html"> <link rel="import" href="../../iron-icons/iron-icons.html"> <link rel="import" href="../iron-list.html"> <style is="custom-style"> paper-scroll-header-panel { @apply(--layout-fit); @apply(--layout-vertical); @apply(--paper-font-common-base); } paper-toolbar.tall .title { font-size: 40px; margin-left: 60px; -webkit-transform-origin: left center; transform-origin: left center; overflow: visible; } paper-toolbar paper-icon-button { --paper-icon-button-ink-color: white; } iron-list { background-color: var(--paper-grey-200, #eee); padding-bottom: 16px; } .item { @apply(--layout-horizontal); margin: 16px 16px 0 16px; padding: 20px; border-radius: 8px; background-color: white; border: 1px solid #ddd; } .item:focus { outline: 0; border-color: #666; } .avatar { height: 40px; width: 40px; border-radius: 20px; box-sizing: border-box; background-color: #DDD; } .pad { padding: 0 16px; @apply(--layout-flex); @apply(--layout-vertical); } .primary { font-size: 16px; font-weight: bold; } .secondary { font-size: 14px; } .dim { color: gray; } </style> </head> <body unresolved> <template is="dom-bind"> <iron-ajax url="data/contacts.json" last-response="{{data}}" auto></iron-ajax> <paper-scroll-header-panel class="fit" condenses keep-condensed-header> <paper-toolbar class="tall"> <paper-icon-button icon="arrow-back" alt="Back"></paper-icon-button> <div class="flex"></div> <paper-icon-button icon="search" alt="Search"></paper-icon-button> <paper-icon-button icon="more-vert" alt="More options"></paper-icon-button> <div class="bottom title">iron-list</div> </paper-toolbar> <iron-list items="[[data]]" as="item"> <template> <div> <div class="item"> <img class="avatar" src="[[item.image]]"> <div class="pad"> <div class="primary">[[item.name]]</div> <div class="secondary">[[item.shortText]]</div> <div class="secondary dim">[[item.longText]]</div> </div> <iron-icon icon$="[[iconForItem(item)]]"></iron-icon> </div> </div> </template> </iron-list> </paper-scroll-header-panel> </template> <script> document.querySelector('template[is=dom-bind]').iconForItem = function(item) { return item ? (item.integer < 50 ? 'star-border' : 'star') : ''; }; document.addEventListener('paper-header-transform', function(event) { var title = this.querySelector('.title'); var detail = event.detail; var deltaHeight = detail.height - detail.condensedHeight; var scale = Math.max(0.6, (deltaHeight - detail.y) / (deltaHeight / 0.4) + 0.6); Polymer.Base.transform('scale(' + scale + ') translateZ(0)', title); }); </script> </body> </html>