|
10 | 10 | * |
11 | 11 | * Depends: |
12 | 12 | * jquery.ui.effect.js |
| 13 | + * jquery.ui.effect-size.js |
13 | 14 | */ |
14 | 15 | (function( $, undefined ) { |
15 | 16 |
|
16 | | -$.effects.effect.puff = function( o, done ) { |
17 | | - var elem = $( this ), |
18 | | - mode = $.effects.setMode( elem, o.mode || "hide" ), |
19 | | - hide = mode === "hide", |
20 | | - percent = parseInt( o.percent, 10 ) || 150, |
21 | | - factor = percent / 100, |
22 | | - original = { |
23 | | - height: elem.height(), |
24 | | - width: elem.width(), |
25 | | - outerHeight: elem.outerHeight(), |
26 | | - outerWidth: elem.outerWidth() |
27 | | - }; |
28 | | - |
29 | | - $.extend( o, { |
30 | | - effect: "scale", |
31 | | - queue: false, |
32 | | - fade: true, |
33 | | - mode: mode, |
34 | | - complete: done, |
35 | | - percent: hide ? percent : 100, |
36 | | - from: hide ? |
37 | | - original : |
38 | | - { |
39 | | - height: original.height * factor, |
40 | | - width: original.width * factor, |
41 | | - outerHeight: original.outerHeight * factor, |
42 | | - outerWidth: original.outerWidth * factor |
43 | | - } |
44 | | - }); |
45 | | - |
46 | | - elem.effect( o ); |
47 | | -}; |
48 | | - |
49 | 17 | $.effects.effect.scale = function( o, done ) { |
50 | 18 |
|
51 | 19 | // Create element |
@@ -108,211 +76,4 @@ $.effects.effect.scale = function( o, done ) { |
108 | 76 |
|
109 | 77 | }; |
110 | 78 |
|
111 | | -$.effects.effect.size = function( o, done ) { |
112 | | - |
113 | | - // Create element |
114 | | - var original, baseline, factor, |
115 | | - el = $( this ), |
116 | | - props0 = [ "position", "top", "bottom", "left", "right", "width", "height", "overflow", "opacity" ], |
117 | | - |
118 | | - // Always restore |
119 | | - props1 = [ "position", "top", "bottom", "left", "right", "overflow", "opacity" ], |
120 | | - |
121 | | - // Copy for children |
122 | | - props2 = [ "width", "height", "overflow" ], |
123 | | - cProps = [ "fontSize" ], |
124 | | - vProps = [ "borderTopWidth", "borderBottomWidth", "paddingTop", "paddingBottom" ], |
125 | | - hProps = [ "borderLeftWidth", "borderRightWidth", "paddingLeft", "paddingRight" ], |
126 | | - |
127 | | - // Set options |
128 | | - mode = $.effects.setMode( el, o.mode || "effect" ), |
129 | | - restore = o.restore || mode !== "effect", |
130 | | - scale = o.scale || "both", |
131 | | - origin = o.origin || [ "middle", "center" ], |
132 | | - position = el.css( "position" ), |
133 | | - props = restore ? props0 : props1, |
134 | | - zero = { |
135 | | - height: 0, |
136 | | - width: 0, |
137 | | - outerHeight: 0, |
138 | | - outerWidth: 0 |
139 | | - }; |
140 | | - |
141 | | - if ( mode === "show" ) { |
142 | | - el.show(); |
143 | | - } |
144 | | - original = { |
145 | | - height: el.height(), |
146 | | - width: el.width(), |
147 | | - outerHeight: el.outerHeight(), |
148 | | - outerWidth: el.outerWidth() |
149 | | - }; |
150 | | - |
151 | | - if ( o.mode === "toggle" && mode === "show" ) { |
152 | | - el.from = o.to || zero; |
153 | | - el.to = o.from || original; |
154 | | - } else { |
155 | | - el.from = o.from || ( mode === "show" ? zero : original ); |
156 | | - el.to = o.to || ( mode === "hide" ? zero : original ); |
157 | | - } |
158 | | - |
159 | | - // Set scaling factor |
160 | | - factor = { |
161 | | - from: { |
162 | | - y: el.from.height / original.height, |
163 | | - x: el.from.width / original.width |
164 | | - }, |
165 | | - to: { |
166 | | - y: el.to.height / original.height, |
167 | | - x: el.to.width / original.width |
168 | | - } |
169 | | - }; |
170 | | - |
171 | | - // Scale the css box |
172 | | - if ( scale === "box" || scale === "both" ) { |
173 | | - |
174 | | - // Vertical props scaling |
175 | | - if ( factor.from.y !== factor.to.y ) { |
176 | | - props = props.concat( vProps ); |
177 | | - el.from = $.effects.setTransition( el, vProps, factor.from.y, el.from ); |
178 | | - el.to = $.effects.setTransition( el, vProps, factor.to.y, el.to ); |
179 | | - } |
180 | | - |
181 | | - // Horizontal props scaling |
182 | | - if ( factor.from.x !== factor.to.x ) { |
183 | | - props = props.concat( hProps ); |
184 | | - el.from = $.effects.setTransition( el, hProps, factor.from.x, el.from ); |
185 | | - el.to = $.effects.setTransition( el, hProps, factor.to.x, el.to ); |
186 | | - } |
187 | | - } |
188 | | - |
189 | | - // Scale the content |
190 | | - if ( scale === "content" || scale === "both" ) { |
191 | | - |
192 | | - // Vertical props scaling |
193 | | - if ( factor.from.y !== factor.to.y ) { |
194 | | - props = props.concat( cProps ).concat( props2 ); |
195 | | - el.from = $.effects.setTransition( el, cProps, factor.from.y, el.from ); |
196 | | - el.to = $.effects.setTransition( el, cProps, factor.to.y, el.to ); |
197 | | - } |
198 | | - } |
199 | | - |
200 | | - $.effects.save( el, props ); |
201 | | - el.show(); |
202 | | - $.effects.createWrapper( el ); |
203 | | - el.css( "overflow", "hidden" ).css( el.from ); |
204 | | - |
205 | | - // Adjust |
206 | | - if (origin) { // Calculate baseline shifts |
207 | | - baseline = $.effects.getBaseline( origin, original ); |
208 | | - el.from.top = ( original.outerHeight - el.outerHeight() ) * baseline.y; |
209 | | - el.from.left = ( original.outerWidth - el.outerWidth() ) * baseline.x; |
210 | | - el.to.top = ( original.outerHeight - el.to.outerHeight ) * baseline.y; |
211 | | - el.to.left = ( original.outerWidth - el.to.outerWidth ) * baseline.x; |
212 | | - } |
213 | | - el.css( el.from ); // set top & left |
214 | | - |
215 | | - // Animate |
216 | | - if ( scale === "content" || scale === "both" ) { // Scale the children |
217 | | - |
218 | | - // Add margins/font-size |
219 | | - vProps = vProps.concat([ "marginTop", "marginBottom" ]).concat(cProps); |
220 | | - hProps = hProps.concat([ "marginLeft", "marginRight" ]); |
221 | | - props2 = props0.concat(vProps).concat(hProps); |
222 | | - |
223 | | - el.find( "*[width]" ).each( function(){ |
224 | | - var child = $( this ), |
225 | | - c_original = { |
226 | | - height: child.height(), |
227 | | - width: child.width(), |
228 | | - outerHeight: child.outerHeight(), |
229 | | - outerWidth: child.outerWidth() |
230 | | - }; |
231 | | - if (restore) { |
232 | | - $.effects.save(child, props2); |
233 | | - } |
234 | | - |
235 | | - child.from = { |
236 | | - height: c_original.height * factor.from.y, |
237 | | - width: c_original.width * factor.from.x, |
238 | | - outerHeight: c_original.outerHeight * factor.from.y, |
239 | | - outerWidth: c_original.outerWidth * factor.from.x |
240 | | - }; |
241 | | - child.to = { |
242 | | - height: c_original.height * factor.to.y, |
243 | | - width: c_original.width * factor.to.x, |
244 | | - outerHeight: c_original.height * factor.to.y, |
245 | | - outerWidth: c_original.width * factor.to.x |
246 | | - }; |
247 | | - |
248 | | - // Vertical props scaling |
249 | | - if ( factor.from.y !== factor.to.y ) { |
250 | | - child.from = $.effects.setTransition( child, vProps, factor.from.y, child.from ); |
251 | | - child.to = $.effects.setTransition( child, vProps, factor.to.y, child.to ); |
252 | | - } |
253 | | - |
254 | | - // Horizontal props scaling |
255 | | - if ( factor.from.x !== factor.to.x ) { |
256 | | - child.from = $.effects.setTransition( child, hProps, factor.from.x, child.from ); |
257 | | - child.to = $.effects.setTransition( child, hProps, factor.to.x, child.to ); |
258 | | - } |
259 | | - |
260 | | - // Animate children |
261 | | - child.css( child.from ); |
262 | | - child.animate( child.to, o.duration, o.easing, function() { |
263 | | - |
264 | | - // Restore children |
265 | | - if ( restore ) { |
266 | | - $.effects.restore( child, props2 ); |
267 | | - } |
268 | | - }); |
269 | | - }); |
270 | | - } |
271 | | - |
272 | | - // Animate |
273 | | - el.animate( el.to, { |
274 | | - queue: false, |
275 | | - duration: o.duration, |
276 | | - easing: o.easing, |
277 | | - complete: function() { |
278 | | - if ( el.to.opacity === 0 ) { |
279 | | - el.css( "opacity", el.from.opacity ); |
280 | | - } |
281 | | - if( mode === "hide" ) { |
282 | | - el.hide(); |
283 | | - } |
284 | | - $.effects.restore( el, props ); |
285 | | - if ( !restore ) { |
286 | | - |
287 | | - // we need to calculate our new positioning based on the scaling |
288 | | - if ( position === "static" ) { |
289 | | - el.css({ |
290 | | - position: "relative", |
291 | | - top: el.to.top, |
292 | | - left: el.to.left |
293 | | - }); |
294 | | - } else { |
295 | | - $.each([ "top", "left" ], function( idx, pos ) { |
296 | | - el.css( pos, function( _, str ) { |
297 | | - var val = parseInt( str, 10 ), |
298 | | - toRef = idx ? el.to.left : el.to.top; |
299 | | - |
300 | | - // if original was "auto", recalculate the new value from wrapper |
301 | | - if ( str === "auto" ) { |
302 | | - return toRef + "px"; |
303 | | - } |
304 | | - |
305 | | - return val + toRef + "px"; |
306 | | - }); |
307 | | - }); |
308 | | - } |
309 | | - } |
310 | | - |
311 | | - $.effects.removeWrapper( el ); |
312 | | - done(); |
313 | | - } |
314 | | - }); |
315 | | - |
316 | | -}; |
317 | | - |
318 | 79 | })(jQuery); |
0 commit comments