diff --git a/browser/base/content/tabcandy/app/groups.js b/browser/base/content/tabcandy/app/groups.js index 11aa95d54cc..25fc4003cc8 100644 --- a/browser/base/content/tabcandy/app/groups.js +++ b/browser/base/content/tabcandy/app/groups.js @@ -107,7 +107,7 @@ window.Group = function(listOfEls, options) { .val(self.defaultName); } else { self.$title.css({"background":"none"}) - .animate({"paddingLeft":1, "easing":"linear"}, 340); + .animate({"paddingLeft":1}, 340, "tabcandyBounce"); } }; @@ -295,9 +295,10 @@ window.Group.prototype = $.extend(new Item(), new Subscribable(), { this.$content.css(contentCSS); } else { TabMirror.pausePainting(); - $(this.container).animate(css, {complete: function() { - TabMirror.resumePainting(); - }}).dequeue(); + $(this.container).animate(css, { + complete: function() {TabMirror.resumePainting();}, + easing: "tabcandyBounce" + }).dequeue(); this.$titlebar.animate(titlebarCSS).dequeue(); this.$content.animate(contentCSS).dequeue(); @@ -604,7 +605,7 @@ window.Group.prototype = $.extend(new Item(), new Subscribable(), { height: overlayHeight, top: pos.top, left: pos.left - },170).addClass("overlay"); + }, 350, "tabcandyBounce").addClass("overlay");//xxx var box = new Rect(pos.left, pos.top, overlayWidth, overlayHeight); box.inset(8, 8); @@ -892,11 +893,11 @@ window.Groups = { // ---------- getBoundsForNewTabGroup: function() { - var pad = 5; + var pad = 20; var sw = window.innerWidth; var sh = window.innerHeight; //var w = sw - (pad * 2); - var w = TabItems.tabWidth*2.5 + pad*4; + var w = TabItems.tabWidth*2 + pad*2; var h = TabItems.tabHeight*1.2 + pad*2; return new Rect(pad, sh - (h + pad), w, h); }, diff --git a/browser/base/content/tabcandy/app/jquery-tabcandy-easing.js b/browser/base/content/tabcandy/app/jquery-tabcandy-easing.js new file mode 100644 index 00000000000..809094de539 --- /dev/null +++ b/browser/base/content/tabcandy/app/jquery-tabcandy-easing.js @@ -0,0 +1,55 @@ +/* + * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/ + * + * Uses the built in easing capabilities added In jQuery 1.1 + * to offer multiple easing options + * + * TERMS OF USE - jQuery Easing + * + * Open source under the BSD License. + * + * Copyright © 2008 George McGinley Smith + * All rights reserved. + * + * Edited and mangled by Aza Raskin :) + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * Neither the name of the author nor the names of contributors may be used to endorse + * or promote products derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * +*/ + +// t: current time, b: begInnIng value, c: change In value, d: duration +jQuery.easing['jswing'] = jQuery.easing['swing']; + +jQuery.extend( jQuery.easing, +{ + def: 'easeOutQuad', + swing: function (x, t, b, c, d) { + //alert(jQuery.easing.default); + return jQuery.easing[jQuery.easing.def](x, t, b, c, d); + }, + tabcandyBounce: function (x, t, b, c, d, s) { + if (s == undefined) s = 1.70158; + return c*(Math.pow((t=t/d-1),3)*t*((s+1)*t+.3 + s) + 1) + b; + } +}); + diff --git a/browser/base/content/tabcandy/app/tabitems.js b/browser/base/content/tabcandy/app/tabitems.js index feef4e26068..6e9d8796664 100644 --- a/browser/base/content/tabcandy/app/tabitems.js +++ b/browser/base/content/tabcandy/app/tabitems.js @@ -98,9 +98,11 @@ window.TabItem.prototype = $.extend(new Item(), { $container.css(css); } else { TabMirror.pausePainting(); - $container.animate(css, {complete: function() { - TabMirror.resumePainting(); - }}).dequeue(); + $container.animate(css,{ + complete: function() {TabMirror.resumePainting();}, + duration: 350, + easing: "tabcandyBounce" + }).dequeue(); } if(css.fontSize) { @@ -254,10 +256,9 @@ window.TabItems = { .animate({ top: -10, left: 0, - easing: "easein", width: orig.width*scale, height: orig.height*scale - }, 200, onZoomDone); + }, 200, "easeOutQuad", onZoomDone); } } else { $(this).find("canvas").data("link").tab.raw.pos = $(this).position(); diff --git a/content/candies/revision-a/index.html b/content/candies/revision-a/index.html index 9bfd5e82fc4..3e7a952a410 100644 --- a/content/candies/revision-a/index.html +++ b/content/candies/revision-a/index.html @@ -21,7 +21,8 @@ - + +