aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--demos/real-world/accordion-drawers/index.html11
-rw-r--r--ui/ui.accordion.js42
2 files changed, 48 insertions, 5 deletions
diff --git a/demos/real-world/accordion-drawers/index.html b/demos/real-world/accordion-drawers/index.html
index 231267419..cfab621a5 100644
--- a/demos/real-world/accordion-drawers/index.html
+++ b/demos/real-world/accordion-drawers/index.html
@@ -162,6 +162,7 @@ blockquote, q {
<script type="text/javascript" src="../../../ui/ui.core.js"></script>
<script type="text/javascript" src="../../../ui/ui.accordion.js"></script>
+ <script type="text/javascript" src="../../../ui/effects.core.js"></script>
<script type="text/javascript">
@@ -170,6 +171,16 @@ blockquote, q {
$('ul.drawers').accordion({
header: 'h2.drawer-handle',
selectedClass: 'open',
+ //animated: 'easeOutBounce',
+ //animated: 'bounceslide',
+ //animated: 'easeslide',
+ animated: function(options) {
+ return options.down ? "easeOutBounce" : "easeInOutCubic";
+ },
+ //duration: 500,
+ duration: function(options) {
+ return options.down ? 700 : 400;
+ },
event: 'mouseover'
});
});
diff --git a/ui/ui.accordion.js b/ui/ui.accordion.js
index 9f01e9c12..7b47ee3de 100644
--- a/ui/ui.accordion.js
+++ b/ui/ui.accordion.js
@@ -127,23 +127,55 @@ function toggle(toShow, toHide, data, clickedActive, down) {
options.running = toHide.size() === 0 ? toShow.size() : toHide.size();
if ( options.animated ) {
+ var animOptions = {};
+
if ( !options.alwaysOpen && clickedActive ) {
- $.ui.accordion.animations[options.animated]({
+ animOptions = {
toShow: jQuery([]),
toHide: toHide,
complete: complete,
down: down,
autoHeight: options.autoHeight
- });
+ };
} else {
- $.ui.accordion.animations[options.animated]({
+ animOptions = {
toShow: toShow,
toHide: toHide,
complete: complete,
down: down,
autoHeight: options.autoHeight
- });
+ };
+ }
+
+ if (!options.proxied) {
+ options.proxied = options.animated;
+ }
+
+ if (!options.proxiedDuration) {
+ options.proxiedDuration = options.duration;
}
+
+ options.animated = $.isFunction(options.proxied) ?
+ options.proxied(animOptions) : options.proxied;
+
+ options.duration = $.isFunction(options.proxiedDuration) ?
+ options.proxiedDuration(animOptions) : options.proxiedDuration;
+
+ var animations = $.ui.accordion.animations,
+ duration = options.duration,
+ easing = options.animated;
+
+ if (!animations[easing]) {
+ animations[easing] = function(options) {
+ this.slide(options, {
+ easing: easing,
+ duration: duration || 700
+ });
+ };
+ }
+
+ animations[easing](animOptions);
+
} else {
if ( !options.alwaysOpen && clickedActive ) {
toShow.toggle();
@@ -279,7 +311,7 @@ $.extend($.ui.accordion, {
},
bounceslide: function(options) {
this.slide(options, {
- easing: options.down ? "bounceout" : "swing",
+ easing: options.down ? "easeOutBounce" : "swing",
duration: options.down ? 1000 : 200
});
},