| 1 |
/* |
| 2 |
* jQuery UI Effects 1.7.2 |
| 3 |
* |
| 4 |
* Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) |
| 5 |
* Dual licensed under the MIT (MIT-LICENSE.txt) |
| 6 |
* and GPL (GPL-LICENSE.txt) licenses. |
| 7 |
* |
| 8 |
* http://docs.jquery.com/UI/Effects/ |
| 9 |
*/ |
| 10 |
;jQuery.effects || (function($) { |
| 11 |
|
| 12 |
$.effects = { |
| 13 |
version: "1.7.2", |
| 14 |
|
| 15 |
// Saves a set of properties in a data storage |
| 16 |
save: function(element, set) { |
| 17 |
for(var i=0; i < set.length; i++) { |
| 18 |
if(set[i] !== null) element.data("ec.storage."+set[i], element[0].style[set[i]]); |
| 19 |
} |
| 20 |
}, |
| 21 |
|
| 22 |
// Restores a set of previously saved properties from a data storage |
| 23 |
restore: function(element, set) { |
| 24 |
for(var i=0; i < set.length; i++) { |
| 25 |
if(set[i] !== null) element.css(set[i], element.data("ec.storage."+set[i])); |
| 26 |
} |
| 27 |
}, |
| 28 |
|
| 29 |
setMode: function(el, mode) { |
| 30 |
if (mode == 'toggle') mode = el.is(':hidden') ? 'show' : 'hide'; // Set for toggle |
| 31 |
return mode; |
| 32 |
}, |
| 33 |
|
| 34 |
getBaseline: function(origin, original) { // Translates a [top,left] array into a baseline value |
| 35 |
// this should be a little more flexible in the future to handle a string & hash |
| 36 |
var y, x; |
| 37 |
switch (origin[0]) { |
| 38 |
case 'top': y = 0; break; |
| 39 |
case 'middle': y = 0.5; break; |
| 40 |
case 'bottom': y = 1; break; |
| 41 |
default: y = origin[0] / original.height; |
| 42 |
}; |
| 43 |
switch (origin[1]) { |
| 44 |
case 'left': x = 0; break; |
| 45 |
case 'center': x = 0.5; break; |
| 46 |
case 'right': x = 1; break; |
| 47 |
default: x = origin[1] / original.width; |
| 48 |
}; |
| 49 |
return {x: x, y: y}; |
| 50 |
}, |
| 51 |
|
| 52 |
// Wraps the element around a wrapper that copies position properties |
| 53 |
createWrapper: function(element) { |
| 54 |
|
| 55 |
//if the element is already wrapped, return it |
| 56 |
if (element.parent().is('.ui-effects-wrapper')) |
| 57 |
return element.parent(); |
| 58 |
|
| 59 |
//Cache width,height and float properties of the element, and create a wrapper around it |
| 60 |
var props = { width: element.outerWidth(true), height: element.outerHeight(true), 'float': element.css('float') }; |
| 61 |
element.wrap('<div class="ui-effects-wrapper" style="font-size:100%;background:transparent;border:none;margin:0;padding:0"></div>'); |
| 62 |
var wrapper = element.parent(); |
| 63 |
|
| 64 |
//Transfer the positioning of the element to the wrapper |
| 65 |
if (element.css('position') == 'static') { |
| 66 |
wrapper.css({ position: 'relative' }); |
| 67 |
element.css({ position: 'relative'} ); |
| 68 |
} else { |
| 69 |
var top = element.css('top'); if(isNaN(parseInt(top,10))) top = 'auto'; |
| 70 |
var left = element.css('left'); if(isNaN(parseInt(left,10))) left = 'auto'; |
| 71 |
wrapper.css({ position: element.css('position'), top: top, left: left, zIndex: element.css('z-index') }).show(); |
| 72 |
element.css({position: 'relative', top: 0, left: 0 }); |
| 73 |
} |
| 74 |
|
| 75 |
wrapper.css(props); |
| 76 |
return wrapper; |
| 77 |
}, |
| 78 |
|
| 79 |
removeWrapper: function(element) { |
| 80 |
if (element.parent().is('.ui-effects-wrapper')) |
| 81 |
return element.parent().replaceWith(element); |
| 82 |
return element; |
| 83 |
}, |
| 84 |
|
| 85 |
setTransition: function(element, list, factor, value) { |
| 86 |
value = value || {}; |
| 87 |
$.each(list, function(i, x){ |
| 88 |
unit = element.cssUnit(x); |
| 89 |
if (unit[0] > 0) value[x] = unit[0] * factor + unit[1]; |
| 90 |
}); |
| 91 |
return value; |
| 92 |
}, |
| 93 |
|
| 94 |
//Base function to animate from one class to another in a seamless transition |
| 95 |
animateClass: function(value, duration, easing, callback) { |
| 96 |
|
| 97 |
var cb = (typeof easing == "function" ? easing : (callback ? callback : null)); |
| 98 |
var ea = (typeof easing == "string" ? easing : null); |
| 99 |
|
| 100 |
return this.each(function() { |
| 101 |
|
| 102 |
var offset = {}; var that = $(this); var oldStyleAttr = that.attr("style") || ''; |
| 103 |
if(typeof oldStyleAttr == 'object') oldStyleAttr = oldStyleAttr["cssText"]; /* Stupidly in IE, style is a object.. */ |
| 104 |
if(value.toggle) { that.hasClass(value.toggle) ? value.remove = value.toggle : value.add = value.toggle; } |
| 105 |
|
| 106 |
//Let's get a style offset |
| 107 |
var oldStyle = $.extend({}, (document.defaultView ? document.defaultView.getComputedStyle(this,null) : this.currentStyle)); |
| 108 |
if(value.add) that.addClass(value.add); if(value.remove) that.removeClass(value.remove); |
| 109 |
var newStyle = $.extend({}, (document.defaultView ? document.defaultView.getComputedStyle(this,null) : this.currentStyle)); |
| 110 |
if(value.add) that.removeClass(value.add); if(value.remove) that.addClass(value.remove); |
| 111 |
|
| 112 |
// The main function to form the object for animation |
| 113 |
for(var n in newStyle) { |
| 114 |
if( typeof newStyle[n] != "function" && newStyle[n] /* No functions and null properties */ |
| 115 |
&& n.indexOf("Moz") == -1 && n.indexOf("length") == -1 /* No mozilla spezific render properties. */ |
| 116 |
&& newStyle[n] != oldStyle[n] /* Only values that have changed are used for the animation */ |
| 117 |
&& (n.match(/color/i) || (!n.match(/color/i) && !isNaN(parseInt(newStyle[n],10)))) /* Only things that can be parsed to integers or colors */ |
| 118 |
&& (oldStyle.position != "static" || (oldStyle.position == "static" && !n.match(/left|top|bottom|right/))) /* No need for positions when dealing with static positions */ |
| 119 |
) offset[n] = newStyle[n]; |
| 120 |
} |
| 121 |
|
| 122 |
that.animate(offset, duration, ea, function() { // Animate the newly constructed offset object |
| 123 |
// Change style attribute back to original. For stupid IE, we need to clear the damn object. |
| 124 |
if(typeof $(this).attr("style") == 'object') { $(this).attr("style")["cssText"] = ""; $(this).attr("style")["cssText"] = oldStyleAttr; } else $(this).attr("style", oldStyleAttr); |
| 125 |
if(value.add) $(this).addClass(value.add); if(value.remove) $(this).removeClass(value.remove); |
| 126 |
if(cb) cb.apply(this, arguments); |
| 127 |
}); |
| 128 |
|
| 129 |
}); |
| 130 |
} |
| 131 |
}; |
| 132 |
|
| 133 |
|
| 134 |
function _normalizeArguments(a, m) { |
| 135 |
|
| 136 |
var o = a[1] && a[1].constructor == Object ? a[1] : {}; if(m) o.mode = m; |
| 137 |
var speed = a[1] && a[1].constructor != Object ? a[1] : (o.duration ? o.duration : a[2]); //either comes from options.duration or the secon/third argument |
| 138 |
speed = $.fx.off ? 0 : typeof speed === "number" ? speed : $.fx.speeds[speed] || $.fx.speeds._default; |
| 139 |
var callback = o.callback || ( $.isFunction(a[1]) && a[1] ) || ( $.isFunction(a[2]) && a[2] ) || ( $.isFunction(a[3]) && a[3] ); |
| 140 |
|
| 141 |
return [a[0], o, speed, callback]; |
| 142 |
|
| 143 |
} |
| 144 |
|
| 145 |
//Extend the methods of jQuery |
| 146 |
$.fn.extend({ |
| 147 |
|
| 148 |
//Save old methods |
| 149 |
_show: $.fn.show, |
| 150 |
_hide: $.fn.hide, |
| 151 |
__toggle: $.fn.toggle, |
| 152 |
_addClass: $.fn.addClass, |
| 153 |
_removeClass: $.fn.removeClass, |
| 154 |
_toggleClass: $.fn.toggleClass, |
| 155 |
|
| 156 |
// New effect methods |
| 157 |
effect: function(fx, options, speed, callback) { |
| 158 |
return $.effects[fx] ? $.effects[fx].call(this, {method: fx, options: options || {}, duration: speed, callback: callback }) : null; |
| 159 |
}, |
| 160 |
|
| 161 |
show: function() { |
| 162 |
if(!arguments[0] || (arguments[0].constructor == Number || (/(slow|normal|fast)/).test(arguments[0]))) |
| 163 |
return this._show.apply(this, arguments); |
| 164 |
else { |
| 165 |
return this.effect.apply(this, _normalizeArguments(arguments, 'show')); |
| 166 |
} |
| 167 |
}, |
| 168 |
|
| 169 |
hide: function() { |
| 170 |
if(!arguments[0] || (arguments[0].constructor == Number || (/(slow|normal|fast)/).test(arguments[0]))) |
| 171 |
return this._hide.apply(this, arguments); |
| 172 |
else { |
| 173 |
return this.effect.apply(this, _normalizeArguments(arguments, 'hide')); |
| 174 |
} |
| 175 |
}, |
| 176 |
|
| 177 |
toggle: function(){ |
| 178 |
if(!arguments[0] || |
| 179 |
(arguments[0].constructor == Number || (/(slow|normal|fast)/).test(arguments[0])) || |
| 180 |
($.isFunction(arguments[0]) || typeof arguments[0] == 'boolean')) { |
| 181 |
return this.__toggle.apply(this, arguments); |
| 182 |
} else { |
| 183 |
return this.effect.apply(this, _normalizeArguments(arguments, 'toggle')); |
| 184 |
} |
| 185 |
}, |
| 186 |
|
| 187 |
addClass: function(classNames, speed, easing, callback) { |
| 188 |
return speed ? $.effects.animateClass.apply(this, [{ add: classNames },speed,easing,callback]) : this._addClass(classNames); |
| 189 |
}, |
| 190 |
removeClass: function(classNames,speed,easing,callback) { |
| 191 |
return speed ? $.effects.animateClass.apply(this, [{ remove: classNames },speed,easing,callback]) : this._removeClass(classNames); |
| 192 |
}, |
| 193 |
toggleClass: function(classNames,speed,easing,callback) { |
| 194 |
return ( (typeof speed !== "boolean") && speed ) ? $.effects.animateClass.apply(this, [{ toggle: classNames },speed,easing,callback]) : this._toggleClass(classNames, speed); |
| 195 |
}, |
| 196 |
morph: function(remove,add,speed,easing,callback) { |
| 197 |
return $.effects.animateClass.apply(this, [{ add: add, remove: remove },speed,easing,callback]); |
| 198 |
}, |
| 199 |
switchClass: function() { |
| 200 |
return this.morph.apply(this, arguments); |
| 201 |
}, |
| 202 |
|
| 203 |
// helper functions |
| 204 |
cssUnit: function(key) { |
| 205 |
var style = this.css(key), val = []; |
| 206 |
$.each( ['em','px','%','pt'], function(i, unit){ |
| 207 |
if(style.indexOf(unit) > 0) |
| 208 |
val = [parseFloat(style), unit]; |
| 209 |
}); |
| 210 |
return val; |
| 211 |
} |
| 212 |
}); |
| 213 |
|
| 214 |
/* |
| 215 |
* jQuery Color Animations |
| 216 |
* Copyright 2007 John Resig |
| 217 |
* Released under the MIT and GPL licenses. |
| 218 |
*/ |
| 219 |
|
| 220 |
// We override the animation for all of these color styles |
| 221 |
$.each(['backgroundColor', 'borderBottomColor', 'borderLeftColor', 'borderRightColor', 'borderTopColor', 'color', 'outlineColor'], function(i,attr){ |
| 222 |
$.fx.step[attr] = function(fx) { |
| 223 |
if ( fx.state == 0 ) { |
| 224 |
fx.start = getColor( fx.elem, attr ); |
| 225 |
fx.end = getRGB( fx.end ); |
| 226 |
} |
| 227 |
|
| 228 |
fx.elem.style[attr] = "rgb(" + [ |
| 229 |
Math.max(Math.min( parseInt((fx.pos * (fx.end[0] - fx.start[0])) + fx.start[0],10), 255), 0), |
| 230 |
Math.max(Math.min( parseInt((fx.pos * (fx.end[1] - fx.start[1])) + fx.start[1],10), 255), 0), |
| 231 |
Math.max(Math.min( parseInt((fx.pos * (fx.end[2] - fx.start[2])) + fx.start[2],10), 255), 0) |
| 232 |
].join(",") + ")"; |
| 233 |
}; |
| 234 |
}); |
| 235 |
|
| 236 |
// Color Conversion functions from highlightFade |
| 237 |
// By Blair Mitchelmore |
| 238 |
// http://jquery.offput.ca/highlightFade/ |
| 239 |
|
| 240 |
// Parse strings looking for color tuples [255,255,255] |
| 241 |
function getRGB(color) { |
| 242 |
var result; |
| 243 |
|
| 244 |
// Check if we're already dealing with an array of colors |
| 245 |
if ( color && color.constructor == Array && color.length == 3 ) |
| 246 |
return color; |
| 247 |
|
| 248 |
// Look for rgb(num,num,num) |
| 249 |
if (result = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(color)) |
| 250 |
return [parseInt(result[1],10), parseInt(result[2],10), parseInt(result[3],10)]; |
| 251 |
|
| 252 |
// Look for rgb(num%,num%,num%) |
| 253 |
if (result = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(color)) |
| 254 |
return [parseFloat(result[1])*2.55, parseFloat(result[2])*2.55, parseFloat(result[3])*2.55]; |
| 255 |
|
| 256 |
// Look for #a0b1c2 |
| 257 |
if (result = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(color)) |
| 258 |
return [parseInt(result[1],16), parseInt(result[2],16), parseInt(result[3],16)]; |
| 259 |
|
| 260 |
// Look for #fff |
| 261 |
if (result = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(color)) |
| 262 |
return [parseInt(result[1]+result[1],16), parseInt(result[2]+result[2],16), parseInt(result[3]+result[3],16)]; |
| 263 |
|
| 264 |
// Look for rgba(0, 0, 0, 0) == transparent in Safari 3 |
| 265 |
if (result = /rgba\(0, 0, 0, 0\)/.exec(color)) |
| 266 |
return colors['transparent']; |
| 267 |
|
| 268 |
// Otherwise, we're most likely dealing with a named color |
| 269 |
return colors[$.trim(color).toLowerCase()]; |
| 270 |
} |
| 271 |
|
| 272 |
function getColor(elem, attr) { |
| 273 |
var color; |
| 274 |
|
| 275 |
do { |
| 276 |
color = $.curCSS(elem, attr); |
| 277 |
|
| 278 |
// Keep going until we find an element that has color, or we hit the body |
| 279 |
if ( color != '' && color != 'transparent' || $.nodeName(elem, "body") ) |
| 280 |
break; |
| 281 |
|
| 282 |
attr = "backgroundColor"; |
| 283 |
} while ( elem = elem.parentNode ); |
| 284 |
|
| 285 |
return getRGB(color); |
| 286 |
}; |
| 287 |
|
| 288 |
// Some named colors to work with |
| 289 |
// From Interface by Stefan Petre |
| 290 |
// http://interface.eyecon.ro/ |
| 291 |
|
| 292 |
var colors = { |
| 293 |
aqua:[0,255,255], |
| 294 |
azure:[240,255,255], |
| 295 |
beige:[245,245,220], |
| 296 |
black:[0,0,0], |
| 297 |
blue:[0,0,255], |
| 298 |
brown:[165,42,42], |
| 299 |
cyan:[0,255,255], |
| 300 |
darkblue:[0,0,139], |
| 301 |
darkcyan:[0,139,139], |
| 302 |
darkgrey:[169,169,169], |
| 303 |
darkgreen:[0,100,0], |
| 304 |
darkkhaki:[189,183,107], |
| 305 |
darkmagenta:[139,0,139], |
| 306 |
darkolivegreen:[85,107,47], |
| 307 |
darkorange:[255,140,0], |
| 308 |
darkorchid:[153,50,204], |
| 309 |
darkred:[139,0,0], |
| 310 |
darksalmon:[233,150,122], |
| 311 |
darkviolet:[148,0,211], |
| 312 |
fuchsia:[255,0,255], |
| 313 |
gold:[255,215,0], |
| 314 |
green:[0,128,0], |
| 315 |
indigo:[75,0,130], |
| 316 |
khaki:[240,230,140], |
| 317 |
lightblue:[173,216,230], |
| 318 |
lightcyan:[224,255,255], |
| 319 |
lightgreen:[144,238,144], |
| 320 |
lightgrey:[211,211,211], |
| 321 |
lightpink:[255,182,193], |
| 322 |
lightyellow:[255,255,224], |
| 323 |
lime:[0,255,0], |
| 324 |
magenta:[255,0,255], |
| 325 |
maroon:[128,0,0], |
| 326 |
navy:[0,0,128], |
| 327 |
olive:[128,128,0], |
| 328 |
orange:[255,165,0], |
| 329 |
pink:[255,192,203], |
| 330 |
purple:[128,0,128], |
| 331 |
violet:[128,0,128], |
| 332 |
red:[255,0,0], |
| 333 |
silver:[192,192,192], |
| 334 |
white:[255,255,255], |
| 335 |
yellow:[255,255,0], |
| 336 |
transparent: [255,255,255] |
| 337 |
}; |
| 338 |
|
| 339 |
/* |
| 340 |
* jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/ |
| 341 |
* |
| 342 |
* Uses the built in easing capabilities added In jQuery 1.1 |
| 343 |
* to offer multiple easing options |
| 344 |
* |
| 345 |
* TERMS OF USE - jQuery Easing |
| 346 |
* |
| 347 |
* Open source under the BSD License. |
| 348 |
* |
| 349 |
* Copyright 2008 George McGinley Smith |
| 350 |
* All rights reserved. |
| 351 |
* |
| 352 |
* Redistribution and use in source and binary forms, with or without modification, |
| 353 |
* are permitted provided that the following conditions are met: |
| 354 |
* |
| 355 |
* Redistributions of source code must retain the above copyright notice, this list of |
| 356 |
* conditions and the following disclaimer. |
| 357 |
* Redistributions in binary form must reproduce the above copyright notice, this list |
| 358 |
* of conditions and the following disclaimer in the documentation and/or other materials |
| 359 |
* provided with the distribution. |
| 360 |
* |
| 361 |
* Neither the name of the author nor the names of contributors may be used to endorse |
| 362 |
* or promote products derived from this software without specific prior written permission. |
| 363 |
* |
| 364 |
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY |
| 365 |
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF |
| 366 |
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE |
| 367 |
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, |
| 368 |
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE |
| 369 |
* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED |
| 370 |
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING |
| 371 |
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED |
| 372 |
* OF THE POSSIBILITY OF SUCH DAMAGE. |
| 373 |
* |
| 374 |
*/ |
| 375 |
|
| 376 |
// t: current time, b: begInnIng value, c: change In value, d: duration |
| 377 |
$.easing.jswing = $.easing.swing; |
| 378 |
|
| 379 |
$.extend($.easing, |
| 380 |
{ |
| 381 |
def: 'easeOutQuad', |
| 382 |
swing: function (x, t, b, c, d) { |
| 383 |
//alert($.easing.default); |
| 384 |
return $.easing[$.easing.def](x, t, b, c, d); |
| 385 |
}, |
| 386 |
easeInQuad: function (x, t, b, c, d) { |
| 387 |
return c*(t/=d)*t + b; |
| 388 |
}, |
| 389 |
easeOutQuad: function (x, t, b, c, d) { |
| 390 |
return -c *(t/=d)*(t-2) + b; |
| 391 |
}, |
| 392 |
easeInOutQuad: function (x, t, b, c, d) { |
| 393 |
if ((t/=d/2) < 1) return c/2*t*t + b; |
| 394 |
return -c/2 * ((--t)*(t-2) - 1) + b; |
| 395 |
}, |
| 396 |
easeInCubic: function (x, t, b, c, d) { |
| 397 |
return c*(t/=d)*t*t + b; |
| 398 |
}, |
| 399 |
easeOutCubic: function (x, t, b, c, d) { |
| 400 |
return c*((t=t/d-1)*t*t + 1) + b; |
| 401 |
}, |
| 402 |
easeInOutCubic: function (x, t, b, c, d) { |
| 403 |
if ((t/=d/2) < 1) return c/2*t*t*t + b; |
| 404 |
return c/2*((t-=2)*t*t + 2) + b; |
| 405 |
}, |
| 406 |
easeInQuart: function (x, t, b, c, d) { |
| 407 |
return c*(t/=d)*t*t*t + b; |
| 408 |
}, |
| 409 |
easeOutQuart: function (x, t, b, c, d) { |
| 410 |
return -c * ((t=t/d-1)*t*t*t - 1) + b; |
| 411 |
}, |
| 412 |
easeInOutQuart: function (x, t, b, c, d) { |
| 413 |
if ((t/=d/2) < 1) return c/2*t*t*t*t + b; |
| 414 |
return -c/2 * ((t-=2)*t*t*t - 2) + b; |
| 415 |
}, |
| 416 |
easeInQuint: function (x, t, b, c, d) { |
| 417 |
return c*(t/=d)*t*t*t*t + b; |
| 418 |
}, |
| 419 |
easeOutQuint: function (x, t, b, c, d) { |
| 420 |
return c*((t=t/d-1)*t*t*t*t + 1) + b; |
| 421 |
}, |
| 422 |
easeInOutQuint: function (x, t, b, c, d) { |
| 423 |
if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b; |
| 424 |
return c/2*((t-=2)*t*t*t*t + 2) + b; |
| 425 |
}, |
| 426 |
easeInSine: function (x, t, b, c, d) { |
| 427 |
return -c * Math.cos(t/d * (Math.PI/2)) + c + b; |
| 428 |
}, |
| 429 |
easeOutSine: function (x, t, b, c, d) { |
| 430 |
return c * Math.sin(t/d * (Math.PI/2)) + b; |
| 431 |
}, |
| 432 |
easeInOutSine: function (x, t, b, c, d) { |
| 433 |
return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b; |
| 434 |
}, |
| 435 |
easeInExpo: function (x, t, b, c, d) { |
| 436 |
return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b; |
| 437 |
}, |
| 438 |
easeOutExpo: function (x, t, b, c, d) { |
| 439 |
return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b; |
| 440 |
}, |
| 441 |
easeInOutExpo: function (x, t, b, c, d) { |
| 442 |
if (t==0) return b; |
| 443 |
if (t==d) return b+c; |
| 444 |
if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b; |
| 445 |
return c/2 * (-Math.pow(2, -10 * --t) + 2) + b; |
| 446 |
}, |
| 447 |
easeInCirc: function (x, t, b, c, d) { |
| 448 |
return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b; |
| 449 |
}, |
| 450 |
easeOutCirc: function (x, t, b, c, d) { |
| 451 |
return c * Math.sqrt(1 - (t=t/d-1)*t) + b; |
| 452 |
}, |
| 453 |
easeInOutCirc: function (x, t, b, c, d) { |
| 454 |
if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b; |
| 455 |
return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b; |
| 456 |
}, |
| 457 |
easeInElastic: function (x, t, b, c, d) { |
| 458 |
var s=1.70158;var p=0;var a=c; |
| 459 |
if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3; |
| 460 |
if (a < Math.abs(c)) { a=c; var s=p/4; } |
| 461 |
else var s = p/(2*Math.PI) * Math.asin (c/a); |
| 462 |
return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b; |
| 463 |
}, |
| 464 |
easeOutElastic: function (x, t, b, c, d) { |
| 465 |
var s=1.70158;var p=0;var a=c; |
| 466 |
if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3; |
| 467 |
if (a < Math.abs(c)) { a=c; var s=p/4; } |
| 468 |
else var s = p/(2*Math.PI) * Math.asin (c/a); |
| 469 |
return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b; |
| 470 |
}, |
| 471 |
easeInOutElastic: function (x, t, b, c, d) { |
| 472 |
var s=1.70158;var p=0;var a=c; |
| 473 |
if (t==0) return b; if ((t/=d/2)==2) return b+c; if (!p) p=d*(.3*1.5); |
| 474 |
if (a < Math.abs(c)) { a=c; var s=p/4; } |
| 475 |
else var s = p/(2*Math.PI) * Math.asin (c/a); |
| 476 |
if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b; |
| 477 |
return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b; |
| 478 |
}, |
| 479 |
easeInBack: function (x, t, b, c, d, s) { |
| 480 |
if (s == undefined) s = 1.70158; |
| 481 |
return c*(t/=d)*t*((s+1)*t - s) + b; |
| 482 |
}, |
| 483 |
easeOutBack: function (x, t, b, c, d, s) { |
| 484 |
if (s == undefined) s = 1.70158; |
| 485 |
return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b; |
| 486 |
}, |
| 487 |
easeInOutBack: function (x, t, b, c, d, s) { |
| 488 |
if (s == undefined) s = 1.70158; |
| 489 |
if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b; |
| 490 |
return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b; |
| 491 |
}, |
| 492 |
easeInBounce: function (x, t, b, c, d) { |
| 493 |
return c - $.easing.easeOutBounce (x, d-t, 0, c, d) + b; |
| 494 |
}, |
| 495 |
easeOutBounce: function (x, t, b, c, d) { |
| 496 |
if ((t/=d) < (1/2.75)) { |
| 497 |
return c*(7.5625*t*t) + b; |
| 498 |
} else if (t < (2/2.75)) { |
| 499 |
return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b; |
| 500 |
} else if (t < (2.5/2.75)) { |
| 501 |
return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b; |
| 502 |
} else { |
| 503 |
return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b; |
| 504 |
} |
| 505 |
}, |
| 506 |
easeInOutBounce: function (x, t, b, c, d) { |
| 507 |
if (t < d/2) return $.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b; |
| 508 |
return $.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b; |
| 509 |
} |
| 510 |
}); |
| 511 |
|
| 512 |
/* |
| 513 |
* |
| 514 |
* TERMS OF USE - EASING EQUATIONS |
| 515 |
* |
| 516 |
* Open source under the BSD License. |
| 517 |
* |
| 518 |
* Copyright 2001 Robert Penner |
| 519 |
* All rights reserved. |
| 520 |
* |
| 521 |
* Redistribution and use in source and binary forms, with or without modification, |
| 522 |
* are permitted provided that the following conditions are met: |
| 523 |
* |
| 524 |
* Redistributions of source code must retain the above copyright notice, this list of |
| 525 |
* conditions and the following disclaimer. |
| 526 |
* Redistributions in binary form must reproduce the above copyright notice, this list |
| 527 |
* of conditions and the following disclaimer in the documentation and/or other materials |
| 528 |
* provided with the distribution. |
| 529 |
* |
| 530 |
* Neither the name of the author nor the names of contributors may be used to endorse |
| 531 |
* or promote products derived from this software without specific prior written permission. |
| 532 |
* |
| 533 |
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY |
| 534 |
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF |
| 535 |
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE |
| 536 |
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, |
| 537 |
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE |
| 538 |
* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED |
| 539 |
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING |
| 540 |
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED |
| 541 |
* OF THE POSSIBILITY OF SUCH DAMAGE. |
| 542 |
* |
| 543 |
*/ |
| 544 |
|
| 545 |
})(jQuery); |
| 546 |
|