1 <!doctype html> 2 <html> 3 <head> 4 5 <script src="../../platform/platform.js"></script> 6 <link href="../core-animated-pages.html" rel="import"> 7 8 <style> 9 body { 10 font-family: Roboto, 'Helvetica Neue', Helvetica, Arial, sans-serif; 11 margin: 0; 12 } 13 14 </style> 15 16 </head> 17 <body unresolved> 18 19 <polymer-element name="list-demo"> 20 <template> 21 22 <style> 23 p { 24 margin: 8px; 25 } 26 27 .item { 28 background: #e7e7e7; 29 padding: 16px; 30 margin: 8px; 31 border-radius: 3px; 32 box-sizing: border-box; 33 position: relative; 34 } 35 </style> 36 37 <p>Tap to move to top</p> 38 39 <core-animated-pages id="pages" on-tap="{{reorder}}" selected="{{selected}}" on-core-animated-pages-transition-end="{{done}}" transitions="hero-transition"> 40 41 <section> 42 <template repeat="{{items}}"> 43 <div hero-id="{{h}}" hero class="item">{{v}}</div> 44 </template> 45 </section> 46 47 <section> 48 <template repeat="{{items2}}"> 49 <div hero-id="{{h}}" hero class="item">{{v}}</div> 50 </template> 51 </section> 52 53 </core-animated-pages> 54 55 </template> 56 57 <script> 58 59 Polymer('list-demo', { 60 61 selected: 0, 62 63 items: [ 64 {h: 'matt', v: 'Matt McNulty'}, 65 {h: 'scott', v: 'Scott Miles'}, 66 {h: 'steve', v: 'Steve Orvell'}, 67 {h: 'frankie', v: 'Frankie Fu'}, 68 {h: 'daniel', v: 'Daniel Freedman'}, 69 {h: 'yvonne', v: 'Yvonne Yip'}, 70 ], 71 72 items2: [ 73 {h: 'matt', v: 'Matt McNulty'}, 74 {h: 'scott', v: 'Scott Miles'}, 75 {h: 'steve', v: 'Steve Orvell'}, 76 {h: 'frankie', v: 'Frankie Fu'}, 77 {h: 'daniel', v: 'Daniel Freedman'}, 78 {h: 'yvonne', v: 'Yvonne Yip'}, 79 ], 80 81 reorder: function(e) { 82 if (this.$.pages.transitioning.length) { 83 return; 84 } 85 86 this.lastMoved = e.target; 87 this.lastMoved.style.zIndex = 10005; 88 var item = e.target.templateInstance.model; 89 var items = this.selected ? this.items : this.items2; 90 var i = this.selected ? this.items2.indexOf(item) : this.items.indexOf(item); 91 if (i != 0) { 92 items.splice(0, 0, item); 93 items.splice(i + 1, 1); 94 } 95 96 this.lastIndex = i; 97 this.selected = this.selected ? 0 : 1; 98 }, 99 100 done: function() { 101 var i = this.lastIndex; 102 var items = this.selected ? this.items : this.items2; 103 var item = items[i]; 104 items.splice(0, 0, item); 105 items.splice(i + 1, 1); 106 this.lastMoved.style.zIndex = null; 107 } 108 }); 109 110 </script> 111 112 </polymer-element> 113 114 <list-demo></list-demo> 115 116 </body> 117 </html>