aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ui/demos/real-world/effects/demo.js65
-rw-r--r--ui/demos/real-world/effects/index.html120
-rw-r--r--ui/demos/real-world/effects/style.css36
-rw-r--r--ui/source/effects.blind.js2
-rw-r--r--ui/source/effects.explode.js9
-rw-r--r--ui/source/effects.fade.js35
-rw-r--r--ui/source/effects.fold.js2
-rw-r--r--ui/source/effects.transfer.js20
8 files changed, 240 insertions, 49 deletions
diff --git a/ui/demos/real-world/effects/demo.js b/ui/demos/real-world/effects/demo.js
new file mode 100644
index 000000000..ebf0ad082
--- /dev/null
+++ b/ui/demos/real-world/effects/demo.js
@@ -0,0 +1,65 @@
+$(document).ready(function() {
+
+ $("div.effect")
+ .hover(function() {
+ $(this).addClass("hover");
+ }, function() {
+ $(this).removeClass("hover");
+ })
+ ;
+
+
+ var effect = function(el, n, o) {
+
+ $.extend(o, {
+ easing: "easeOutQuint"
+ });
+
+ $(el).bind("click", function() {
+
+ $(this).addClass("current").hide(n, o, 1000, function() {
+ var self = this;
+ window.setTimeout(function() {
+ $(self).show(n, o, 1000, function() { $(this).removeClass("current"); });
+ },500);
+ });
+ });
+
+ };
+
+
+ effect("#blindHorizontally", "blind", { direction: "horizontal" });
+ effect("#blindVertically", "blind", { direction: "vertical" });
+
+ effect("#bounce3times", "bounce", { times: 3 });
+
+ effect("#clipHorizontally", "clip", { direction: "horizontal" });
+ effect("#clipVertically", "clip", { direction: "vertical" });
+
+ effect("#dropDown", "drop", { direction: "down" });
+ effect("#dropUp", "drop", { direction: "up" });
+ effect("#dropLeft", "drop", { direction: "left" });
+ effect("#dropRight", "drop", { direction: "right" });
+
+ effect("#explode9", "explode", { });
+ effect("#explode36", "explode", { pieces: 36 });
+
+ effect("#fold", "fold", { size: 50 });
+
+ effect("#highlight", "highlight", { });
+
+ effect("#pulsate", "pulsate", { times: 2 });
+
+ effect("#puff", "puff", { times: 2 });
+ effect("#scale", "scale", { });
+
+ $("#shake").bind("click", function() { $(this).addClass("current").effect("shake", {}, 100, function() { $(this).removeClass("current"); }); });
+
+ effect("#slideDown", "slide", { direction: "down" });
+ effect("#slideUp", "slide", { direction: "up" });
+ effect("#slideLeft", "slide", { direction: "left" });
+ effect("#slideRight", "slide", { direction: "right" });
+
+ $("#transfer").bind("click", function() { $(this).addClass("current").effect("transfer", { to: "div:eq(0)" }, 1000, function() { $(this).removeClass("current"); }); });
+
+}); \ No newline at end of file
diff --git a/ui/demos/real-world/effects/index.html b/ui/demos/real-world/effects/index.html
new file mode 100644
index 000000000..bffad1746
--- /dev/null
+++ b/ui/demos/real-world/effects/index.html
@@ -0,0 +1,120 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+ <head>
+ <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
+ <title>Effects Test Suite</title>
+ <link rel="stylesheet" href="style.css" type="text/css" media="screen" title="no title" charset="utf-8" />
+
+ <script type="text/javascript" src="../../../../jquery/jquery-1.2.6.js"></script>
+ <script type="text/javascript" src="../../../source/effects.core.js"></script>
+
+ <script type="text/javascript" src="../../../source/effects.blind.js"></script>
+ <script type="text/javascript" src="../../../source/effects.bounce.js"></script>
+ <script type="text/javascript" src="../../../source/effects.clip.js"></script>
+ <script type="text/javascript" src="../../../source/effects.drop.js"></script>
+ <script type="text/javascript" src="../../../source/effects.explode.js"></script>
+ <script type="text/javascript" src="../../../source/effects.fold.js"></script>
+ <script type="text/javascript" src="../../../source/effects.highlight.js"></script>
+ <script type="text/javascript" src="../../../source/effects.pulsate.js"></script>
+ <script type="text/javascript" src="../../../source/effects.scale.js"></script>
+ <script type="text/javascript" src="../../../source/effects.shake.js"></script>
+ <script type="text/javascript" src="../../../source/effects.slide.js"></script>
+ <script type="text/javascript" src="../../../source/effects.transfer.js"></script>
+
+ <script type="text/javascript" src="demo.js"></script>
+
+
+ </head>
+ <body>
+
+ <div class="effect" id="blindHorizontally">
+ <p>Blind horizontally</p>
+ </div>
+
+ <div class="effect" id="blindVertically">
+ <p>Blind vertically</p>
+ </div>
+
+ <div class="effect" id="bounce3times">
+ <p>Bounce 3 times</p>
+ </div>
+
+ <div class="effect" id="clipHorizontally">
+ <p>Clip horizontally</p>
+ </div>
+
+ <div class="effect" id="clipVertically">
+ <p>Clip vertically</p>
+ </div>
+
+ <div class="effect" id="dropDown">
+ <p>Drop down</p>
+ </div>
+
+ <div class="effect" id="dropUp">
+ <p>Drop up</p>
+ </div>
+
+ <div class="effect" id="dropLeft">
+ <p>Drop left</p>
+ </div>
+
+ <div class="effect" id="dropRight">
+ <p>Drop right</p>
+ </div>
+
+ <div class="effect" id="explode9">
+ <p>Explode in 9 pieces</p>
+ </div>
+
+ <div class="effect" id="explode36">
+ <p>Explode in 36 pieces</p>
+ </div>
+
+ <div class="effect" id="fold">
+ <p>Fold</p>
+ </div>
+
+ <div class="effect" id="highlight">
+ <p>Highlight</p>
+ </div>
+
+ <div class="effect" id="pulsate">
+ <p>Pulsate 2 times</p>
+ </div>
+
+ <div class="effect" id="puff">
+ <p>Puff</p>
+ </div>
+
+ <div class="effect" id="scale">
+ <p>Scale</p>
+ </div>
+
+ <div class="effect" id="shake">
+ <p>Shake</p>
+ </div>
+
+ <div class="effect" id="slideDown">
+ <p>Slide down</p>
+ </div>
+
+ <div class="effect" id="slideUp">
+ <p>Slide up</p>
+ </div>
+
+ <div class="effect" id="slideLeft">
+ <p>Slide left</p>
+ </div>
+
+ <div class="effect" id="slideRight">
+ <p>Slide right</p>
+ </div>
+
+ <div class="effect" id="transfer">
+ <p>Transfer to first element</p>
+ </div>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/ui/demos/real-world/effects/style.css b/ui/demos/real-world/effects/style.css
new file mode 100644
index 000000000..e2a184466
--- /dev/null
+++ b/ui/demos/real-world/effects/style.css
@@ -0,0 +1,36 @@
+body,html {
+ margin: 0;
+ padding: 0;
+ font-size: 12px;
+ font-family: Arial;
+ background: #000;
+}
+
+div.effect {
+ width: 120px;
+ height: 100px;
+ background: #333;
+ border: 5px outset #aaa;
+ float: left;
+ margin-top: 20px;
+ margin-left: 20px;
+ cursor: pointer;
+ cursor: hand;
+}
+
+div.current {
+ border: 5px outset #FF0000;
+ background: #660000;
+}
+
+div.effect p {
+ color: #eee;
+ margin: 0px;
+ padding: 10px;
+}
+
+.ui-effects-transfer {
+ border: 1px dotted #fff;
+ background: #666;
+ opacity: 0.5;
+} \ No newline at end of file
diff --git a/ui/source/effects.blind.js b/ui/source/effects.blind.js
index 1681ae286..324864300 100644
--- a/ui/source/effects.blind.js
+++ b/ui/source/effects.blind.js
@@ -26,7 +26,7 @@
wrapper.animate(animation, o.duration, o.options.easing, function() {
if(mode == 'hide') el.hide(); // Hide
$.effects.restore(el, props); $.effects.removeWrapper(el); // Restore
- if(o.callback) o.callback.apply(this, arguments); // Callback
+ if(o.callback) o.callback.apply(el[0], arguments); // Callback
el.dequeue();
});
diff --git a/ui/source/effects.explode.js b/ui/source/effects.explode.js
index 4962c5d93..78d37e7ff 100644
--- a/ui/source/effects.explode.js
+++ b/ui/source/effects.explode.js
@@ -10,8 +10,13 @@
o.options.mode = o.options.mode == 'toggle' ? ($(this).is(':visible') ? 'hide' : 'show') : o.options.mode;
var el = $(this).show().css('visibility', 'hidden');
var offset = el.offset();
- var width = el.outerWidth();
- var height = el.outerHeight();
+
+ //Substract the margins - not fixing the problem yet.
+ offset.top -= parseInt(el.css("marginTop")) || 0;
+ offset.left -= parseInt(el.css("marginLeft")) || 0;
+
+ var width = el.outerWidth(true);
+ var height = el.outerHeight(true);
for(var i=0;i<rows;i++) { // =
for(var j=0;j<cells;j++) { // ||
diff --git a/ui/source/effects.fade.js b/ui/source/effects.fade.js
deleted file mode 100644
index 2d265bfc5..000000000
--- a/ui/source/effects.fade.js
+++ /dev/null
@@ -1,35 +0,0 @@
-;(function($) {
-
- $.effects.fade = function(o) {
-
- return this.queue(function() {
-
- // Create element
- var el = $(this), props = ['opacity'];
-
- // Set options
- var mode = $.effects.setMode(el, o.options.mode || 'effect'); // Set Mode
- if (mode == 'toggle') mode = el.is(':hidden') ? 'show' : 'hide'; // Set for toggle
- var opacity = o.options.opacity || 0; // Default fade opacity
- var original_opacity = el.css('opacity');
-
- // Adjust
- $.effects.save(el, props); el.show(); // Save & Show
- if(mode == 'show') el.css({opacity: 0}); // Shift
-
- // Animation
- var animation = {opacity: mode == 'show' ? original_opacity : opacity};
-
- // Animate
- el.animate(animation, { queue: false, duration: o.duration, easing: o.options.easing, complete: function() {
- if(mode == 'hide') el.hide(); // Hide
- if(mode == 'hide') $.effects.restore(el, props); // Restore
- if(o.callback) o.callback.apply(this, arguments); // Callback
- el.dequeue();
- }});
-
- });
-
- };
-
-})(jQuery); \ No newline at end of file
diff --git a/ui/source/effects.fold.js b/ui/source/effects.fold.js
index f2738c2aa..a57593d8c 100644
--- a/ui/source/effects.fold.js
+++ b/ui/source/effects.fold.js
@@ -28,7 +28,7 @@
.animate(animation2, o.duration / 2, o.options.easing, function() {
if(mode == 'hide') el.hide(); // Hide
$.effects.restore(el, props); $.effects.removeWrapper(el); // Restore
- if(o.callback) o.callback.apply(this, arguments); // Callback
+ if(o.callback) o.callback.apply(el[0], arguments); // Callback
el.dequeue();
});
diff --git a/ui/source/effects.transfer.js b/ui/source/effects.transfer.js
index f83700c0d..c2a26128a 100644
--- a/ui/source/effects.transfer.js
+++ b/ui/source/effects.transfer.js
@@ -10,24 +10,24 @@
// Set options
var mode = $.effects.setMode(el, o.options.mode || 'effect'); // Set Mode
var target = $(o.options.to); // Find Target
- var position = el.position();
- var transfer = $('<div id="fxTransfer"></div>').appendTo(document.body)
+ var position = el.offset();
+ var transfer = $('<div class="ui-effects-transfer"></div>').appendTo(document.body);
// Set target css
transfer.addClass(o.options.className);
transfer.css({
- top: position['top'],
- left: position['left'],
- height: el.outerHeight({margin:true}) - parseInt(transfer.css('borderTopWidth')) - parseInt(transfer.css('borderBottomWidth')),
- width: el.outerWidth({margin:true}) - parseInt(transfer.css('borderLeftWidth')) - parseInt(transfer.css('borderRightWidth')),
+ top: position.top,
+ left: position.left,
+ height: el.outerHeight(true) - parseInt(transfer.css('borderTopWidth')) - parseInt(transfer.css('borderBottomWidth')),
+ width: el.outerWidth(true) - parseInt(transfer.css('borderLeftWidth')) - parseInt(transfer.css('borderRightWidth')),
position: 'absolute'
});
// Animation
- position = target.position();
+ position = target.offset();
animation = {
- top: position['top'],
- left: position['left'],
+ top: position.top,
+ left: position.top,
height: target.outerHeight() - parseInt(transfer.css('borderTopWidth')) - parseInt(transfer.css('borderBottomWidth')),
width: target.outerWidth() - parseInt(transfer.css('borderLeftWidth')) - parseInt(transfer.css('borderRightWidth'))
};
@@ -35,7 +35,7 @@
// Animate
transfer.animate(animation, o.duration, o.options.easing, function() {
transfer.remove(); // Remove div
- if(o.callback) o.callback.apply(this, arguments); // Callback
+ if(o.callback) o.callback.apply(el[0], arguments); // Callback
el.dequeue();
});