Blame view

controllets/animated-grid-controllet/animated-grid-controllet.html 5.33 KB
925d7edd   isisadmin   animated-grid-con...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
  <!--

  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="../../bower_components/polymer/polymer.html">

  <link rel="import" href="../../bower_components/paper-styles/paper-styles.html">

  <link rel="import" href="../../bower_components/neon-animation/neon-shared-element-animatable-behavior.html">

  

  <dom-module id="animated-grid-controllet">

  

      <style>

  

          :host {

              display: block;

              /*background: #000;*/

          }

  

          /* clearfix */

          .grid:after

          {

              content: '';

              display: block;

              clear: both;

          }

  

          /* ---- grid-item ---- */

  

  

d0de5d86   isisadmin   public room
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
          ::content .grid-item {float: left;box-sizing: border-box;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;border: 3px solid white;}

          ::content .grid-sizer {width: 200px;}

          ::content .grid-item-w20  {width:  200px;}

          ::content .grid-item-w40  {width:  400px;}

          ::content .grid-item-w60  {width:  600px;}

          ::content .grid-item-w80  {width:  80%;}

          ::content .grid-item-w100 {width:  100%;}

  

          ::content .grid-item-h200 {height: 200px;}

          ::content .grid-item-h400 {height: 400px;}

          ::content .grid-item-h600 {height: 600px;}

          ::content .grid-item-h800 {height: 800px;}

  

          ::content .grid-item-c0 {background-color: #0D47A1;}

          ::content .grid-item-c1 {background-color: #1976D2;}

          ::content .grid-item-c2 {background-color: #2196F3;}

          ::content .grid-item-c3 {background-color: #64B5F6;}

          ::content .grid-item-c4 {background-color: #BBDEFB;}

  

          ::content .room-body    {background-color: #BBDEFB;}

  

          ::content .room-subject

925d7edd   isisadmin   animated-grid-con...
55
          {

d0de5d86   isisadmin   public room
56
57
58
59
60
61
62
              position: absolute;

              width: 100%;

              height: 30px;

              bottom: 20px;

              background-color: rgba(0,0,0,0.6);

              vertical-align: middle;

              color: #FFFFFF;

925d7edd   isisadmin   animated-grid-con...
63
64
          }

  

925d7edd   isisadmin   animated-grid-con...
65
66
67
68
      </style>

  

      <template>

  

d0de5d86   isisadmin   public room
69
70
          <div id="grid-container" class="grid">

              <!--<template is="dom-repeat" items="{{data}}">

925d7edd   isisadmin   animated-grid-con...
71
                  <div class$="{{item.b}} {{item.w}} {{item.h}} {{item.c}}">{{index}}</div>

d0de5d86   isisadmin   public room
72
73
              </template>-->

              <content></content>

925d7edd   isisadmin   animated-grid-con...
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
          </div>

  

          <div class="grid-sizer"></div>

  

      </template>

  

  </dom-module>

  

  <script>

  

      Polymer({

  

          is: 'animated-grid-controllet',

  

          behaviors: [

              Polymer.NeonSharedElementAnimatableBehavior

          ],

  

          properties: {

              animationConfig: {

                  type: Object,

                  value: function() {

                      return {

                          'exit': [{

                              name: 'ripple-animation',

                              id: 'ripple',

                              fromPage: this

                          }, {

                              name: 'hero-animation',

                              id: 'hero',

                              fromPage: this

                          }]

                      }

                  }

              }

          },

  

          ready : function()

          {

d0de5d86   isisadmin   public room
113
              /*var randW = 0;

925d7edd   isisadmin   animated-grid-con...
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
              var randH = 0;

              var randC = 0;

              this.data = [];

  

              for(var i=0; i<100; i++)

              {

                  randW = Math.floor(Math.random() * 2);

                  randH = Math.floor(Math.random() * 2);//randW;//0;//1;

                  randC = Math.floor(Math.random() * 5);

                  //html += '<div class="grid-item grid-item-w'+((randW*20)+20)+' grid-item-h'+((randH*200)+200)+' grid-item-c'+randC+'">Topic - '+i+'</div>';

  

                  this.push('data',    {b: 'grid-item',

                                        w: 'grid-item-w'+((randW*20)+20),

                                        h: 'grid-item-h'+((randH*200)+200),

                                        c: 'grid-item-c'+randC});

  

d0de5d86   isisadmin   public room
130
              }*/

925d7edd   isisadmin   animated-grid-con...
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
          },

  

          attached : function()

          {

              $('.grid').masonry({

                  itemSelector: '.grid-item',

                  columnWidth: 200

              });

          },

  

          listeners: {

              click: '_onClick'

          },

  

          _onClick: function(event) {

  

              var target = event.target;

  

be426b06   isisadmin   private room
149
150
151
              if(target.classList[0] != "grid-item")

                  return;

  

925d7edd   isisadmin   animated-grid-con...
152
153
154
155
156
157
158
159
160
161
162
163
              // configure the page animation

              this.sharedElements = {

                  'hero': target,

                  'ripple': target

              };

              this.animationConfig['exit'][0].gesture = {

                  x: event.x || event.pageX,

                  y: event.y || event.pageY

              };

  

              this.fire('tile-click', {

                  tile: target,

d0de5d86   isisadmin   public room
164
165
                  //data: {color: target._templateInstance.item.c}

                  data: {color: target.classList[3], id:target.id}

925d7edd   isisadmin   animated-grid-con...
166
167
168
169
170
171
172
              });

  

          }

  

      });

  

  </script>