From 269801ad84dddc92094e642653def2559c626077 Mon Sep 17 00:00:00 2001 From: Aaron Eisenberger Date: Thu, 26 Jun 2008 15:58:38 +0000 Subject: [PATCH] add scale toggle and size to functional demos + move origin calculations to size --- .../templates/ui.effects.general.html | 18 +++++++++++++++++- .../templates/ui.effects.showhide.html | 15 +++++++++++++++ ui/effects.scale.js | 19 ++++++++++--------- 3 files changed, 42 insertions(+), 10 deletions(-) diff --git a/demos/functional/templates/ui.effects.general.html b/demos/functional/templates/ui.effects.general.html index f6032d7c8..8f8e1877b 100644 --- a/demos/functional/templates/ui.effects.general.html +++ b/demos/functional/templates/ui.effects.general.html @@ -59,7 +59,7 @@ { title: 'Scale', - desc: 'Change the size of an element.', + desc: 'Scales and element by a percentage.', html: ' \n' + '
\n' + '
', @@ -75,6 +75,22 @@ { desc: 'Scale from bottom-right', source: '$("#doScale").click(function() { $("#scale").effect("scale", {origin: ["bottom", "right"], percent: 50}, 2000); });' } ] }, + + { + title: 'Size', + desc: 'Change the size of an element.', + html: ' \n' + + '
\n' + + '
', + destroy: '$("#doSize").unbind();', + + options: [ + { desc: 'Size to 75x200', source: '$("#doSize").click(function() { $("#size").effect("size", {to: {width:75, height:200}}, 2000); });' }, + { desc: 'Size to 200x75', source: '$("#doSize").click(function() { $("#size").effect("size", {to: {width:200, height:75}}, 2000); });' }, + { desc: 'Size (125x210) from middle-center', source: '$("#doSize").click(function() { $("#size").effect("size", {to: {width:125, height:210}, origin: ["middle", "center"]}, 2000); });' }, + { desc: 'Size (210x125) from bottom-right', source: '$("#doSize").click(function() { $("#size").effect("size", {to: {width:210, height:125}, origin: ["bottom", "right"]}, 2000); });' } + ] + }, { title: 'Shake', diff --git a/demos/functional/templates/ui.effects.showhide.html b/demos/functional/templates/ui.effects.showhide.html index fe57b1372..70e41b0cb 100644 --- a/demos/functional/templates/ui.effects.showhide.html +++ b/demos/functional/templates/ui.effects.showhide.html @@ -103,6 +103,21 @@ { desc: 'Puff to 200%', source: '$("#doPuff").click(function() { $(".pufffx").toggle("puff", {percent: 200}, 2000); });' } ] }, + + { + title: 'Scale', + desc: 'Grow/Shrink an element.', + html: '
\n' + + '\n' + + '
', + destroy: '$("#doPuff").unbind();', + + options: [ + { desc: 'Scale defaults', source: '$("#doScale").click(function() { $(".scalefx").toggle("scale", {}, 2000); });' } + ] + }, + { title: 'Slide', diff --git a/ui/effects.scale.js b/ui/effects.scale.js index ec7421e95..3a3056454 100644 --- a/ui/effects.scale.js +++ b/ui/effects.scale.js @@ -56,7 +56,7 @@ $.effects.scale = function(o) { var direction = o.options.direction || 'both'; // Set default axis var origin = o.options.origin; // The origin of the scaling if (mode != 'effect') { // Set default origin and restore for show/hide - origin = origin || ['middle','center']; + options.origin = origin || ['middle','center']; options.restore = true; } var original = {height: el.height(), width: el.width()}; // Save original @@ -68,13 +68,7 @@ $.effects.scale = function(o) { x: direction != 'vertical' ? (percent / 100) : 1 }; el.to = {height: original.height * factor.y, width: original.width * factor.x}; // Set to state - if (origin) { // Calculate baseline shifts - var baseline = $.effects.getBaseline(origin, original); - el.from.top = (original.height - el.from.height) * baseline.y; - el.from.left = (original.width - el.from.width) * baseline.x; - el.to.top = (original.height - el.to.height) * baseline.y; - el.to.left = (original.width - el.to.width) * baseline.x; - }; + if (o.options.fade) { // Fade option to support puff if (mode == 'show') {el.from.opacity = 0; el.to.opacity = 1;}; if (mode == 'hide') {el.from.opacity = 1; el.to.opacity = 0;}; @@ -106,11 +100,18 @@ $.effects.size = function(o) { var mode = $.effects.setMode(el, o.options.mode || 'effect'); // Set Mode var restore = o.options.restore || false; // Default restore var scale = o.options.scale || 'both'; // Default scale mode + var origin = o.options.origin; // The origin of the sizing var original = {height: el.height(), width: el.width()}; // Save original el.from = o.options.from || original; // Default from state el.to = o.options.to || original; // Default to state - // Adjust + if (origin) { // Calculate baseline shifts + var baseline = $.effects.getBaseline(origin, original); + el.from.top = (original.height - el.from.height) * baseline.y; + el.from.left = (original.width - el.from.width) * baseline.x; + el.to.top = (original.height - el.to.height) * baseline.y; + el.to.left = (original.width - el.to.width) * baseline.x; + }; var factor = { // Set scaling factor from: {y: el.from.height / original.height, x: el.from.width / original.width}, to: {y: el.to.height / original.height, x: el.to.width / original.width} -- 2.39.5