OLD | NEW |
1 <!-- | 1 <!-- |
2 @license | 2 @license |
3 Copyright (c) 2015 The Polymer Project Authors. All rights reserved. | 3 Copyright (c) 2015 The Polymer Project Authors. All rights reserved. |
4 This code may only be used under the BSD style license found at http://polymer.g
ithub.io/LICENSE.txt | 4 This code may only be used under the BSD style license found at http://polymer.g
ithub.io/LICENSE.txt |
5 The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt | 5 The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt |
6 The complete set of contributors may be found at http://polymer.github.io/CONTRI
BUTORS.txt | 6 The complete set of contributors may be found at http://polymer.github.io/CONTRI
BUTORS.txt |
7 Code distributed by Google as part of the polymer project is also | 7 Code distributed by Google as part of the polymer project is also |
8 subject to an additional IP rights grant found at http://polymer.github.io/PATEN
TS.txt | 8 subject to an additional IP rights grant found at http://polymer.github.io/PATEN
TS.txt |
9 --> | 9 --> |
10 | 10 |
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
84 get _fitHeight() { | 84 get _fitHeight() { |
85 var fitHeight; | 85 var fitHeight; |
86 if (this.fitInto === window) { | 86 if (this.fitInto === window) { |
87 fitHeight = this.fitInto.innerHeight; | 87 fitHeight = this.fitInto.innerHeight; |
88 } else { | 88 } else { |
89 fitHeight = this.fitInto.getBoundingClientRect().height; | 89 fitHeight = this.fitInto.getBoundingClientRect().height; |
90 } | 90 } |
91 return fitHeight; | 91 return fitHeight; |
92 }, | 92 }, |
93 | 93 |
| 94 get _fitLeft() { |
| 95 var fitLeft; |
| 96 if (this.fitInto === window) { |
| 97 fitLeft = 0; |
| 98 } else { |
| 99 fitLeft = this.fitInto.getBoundingClientRect().left; |
| 100 } |
| 101 return fitLeft; |
| 102 }, |
| 103 |
| 104 get _fitTop() { |
| 105 var fitTop; |
| 106 if (this.fitInto === window) { |
| 107 fitTop = 0; |
| 108 } else { |
| 109 fitTop = this.fitInto.getBoundingClientRect().top; |
| 110 } |
| 111 return fitTop; |
| 112 }, |
| 113 |
94 attached: function() { | 114 attached: function() { |
95 if (this.autoFitOnAttach) { | 115 if (this.autoFitOnAttach) { |
96 if (window.getComputedStyle(this).display === 'none') { | 116 if (window.getComputedStyle(this).display === 'none') { |
97 setTimeout(function() { | 117 setTimeout(function() { |
98 this.fit(); | 118 this.fit(); |
99 }.bind(this)); | 119 }.bind(this)); |
100 } else { | 120 } else { |
101 this.fit(); | 121 this.fit(); |
102 } | 122 } |
103 } | 123 } |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
180 */ | 200 */ |
181 constrain: function() { | 201 constrain: function() { |
182 var info = this._fitInfo; | 202 var info = this._fitInfo; |
183 // position at (0px, 0px) if not already positioned, so we can measure the
natural size. | 203 // position at (0px, 0px) if not already positioned, so we can measure the
natural size. |
184 if (!this._fitInfo.positionedBy.vertically) { | 204 if (!this._fitInfo.positionedBy.vertically) { |
185 this.style.top = '0px'; | 205 this.style.top = '0px'; |
186 } | 206 } |
187 if (!this._fitInfo.positionedBy.horizontally) { | 207 if (!this._fitInfo.positionedBy.horizontally) { |
188 this.style.left = '0px'; | 208 this.style.left = '0px'; |
189 } | 209 } |
| 210 if (!this._fitInfo.positionedBy.vertically || !this._fitInfo.positionedBy.
horizontally) { |
| 211 // need position:fixed to properly size the element |
| 212 this.style.position = 'fixed'; |
| 213 } |
190 // need border-box for margin/padding | 214 // need border-box for margin/padding |
191 this.sizingTarget.style.boxSizing = 'border-box'; | 215 this.sizingTarget.style.boxSizing = 'border-box'; |
192 // constrain the width and height if not already set | 216 // constrain the width and height if not already set |
193 var rect = this.getBoundingClientRect(); | 217 var rect = this.getBoundingClientRect(); |
194 if (!info.sizedBy.height) { | 218 if (!info.sizedBy.height) { |
195 this._sizeDimension(rect, info.positionedBy.vertically, 'top', 'bottom',
'Height'); | 219 this._sizeDimension(rect, info.positionedBy.vertically, 'top', 'bottom',
'Height'); |
196 } | 220 } |
197 if (!info.sizedBy.width) { | 221 if (!info.sizedBy.width) { |
198 this._sizeDimension(rect, info.positionedBy.horizontally, 'left', 'right
', 'Width'); | 222 this._sizeDimension(rect, info.positionedBy.horizontally, 'left', 'right
', 'Width'); |
199 } | 223 } |
(...skipping 13 matching lines...) Expand all Loading... |
213 /** | 237 /** |
214 * Centers horizontally and vertically if not already positioned. This also
sets | 238 * Centers horizontally and vertically if not already positioned. This also
sets |
215 * `position:fixed`. | 239 * `position:fixed`. |
216 */ | 240 */ |
217 center: function() { | 241 center: function() { |
218 if (!this._fitInfo.positionedBy.vertically || !this._fitInfo.positionedBy.
horizontally) { | 242 if (!this._fitInfo.positionedBy.vertically || !this._fitInfo.positionedBy.
horizontally) { |
219 // need position:fixed to center | 243 // need position:fixed to center |
220 this.style.position = 'fixed'; | 244 this.style.position = 'fixed'; |
221 } | 245 } |
222 if (!this._fitInfo.positionedBy.vertically) { | 246 if (!this._fitInfo.positionedBy.vertically) { |
223 var top = (this._fitHeight - this.offsetHeight) / 2; | 247 var top = (this._fitHeight - this.offsetHeight) / 2 + this._fitTop; |
224 top -= this._fitInfo.margin.top; | 248 top -= this._fitInfo.margin.top; |
225 this.style.top = top + 'px'; | 249 this.style.top = top + 'px'; |
226 } | 250 } |
227 if (!this._fitInfo.positionedBy.horizontally) { | 251 if (!this._fitInfo.positionedBy.horizontally) { |
228 var left = (this._fitWidth - this.offsetWidth) / 2; | 252 var left = (this._fitWidth - this.offsetWidth) / 2 + this._fitLeft; |
229 left -= this._fitInfo.margin.left; | 253 left -= this._fitInfo.margin.left; |
230 this.style.left = left + 'px'; | 254 this.style.left = left + 'px'; |
231 } | 255 } |
232 } | 256 } |
233 | 257 |
234 }; | 258 }; |
235 | 259 |
236 </script> | 260 </script> |
OLD | NEW |