Skip to content

Commit 36ef07b

Browse files
committed
Effects Rewrite: extract "unshift" method for reuse
1 parent 7e78572 commit 36ef07b

File tree

5 files changed

+20
-47
lines changed

5 files changed

+20
-47
lines changed

ui/effect-bounce.js

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -45,10 +45,6 @@ return $.effects.define( "bounce", function( o, done ) {
4545
motion = ( direction === "up" || direction === "left" ),
4646
i = 0,
4747

48-
// we will need to re-assemble the queue to stack our animations in place
49-
queue = el.queue(),
50-
queuelen = queue.length,
51-
5248
placeholder = $.effects.createPlaceholder( el ),
5349
refValue = el.css( ref );
5450

@@ -104,13 +100,7 @@ return $.effects.define( "bounce", function( o, done ) {
104100
done();
105101
});
106102

107-
// inject all the animations we just queued to be first in line (after "inprogress")
108-
if ( queuelen > 1) {
109-
queue.splice.apply( queue,
110-
[ 1, 0 ].concat( queue.splice( queuelen, anims + 1 ) ) );
111-
}
112-
el.dequeue();
113-
103+
$.effects.unshift( el, anims + 1 );
114104
});
115105

116106
}));

ui/effect-fold.js

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -46,11 +46,7 @@ return $.effects.define( "fold", "hide", function( o, done ) {
4646
clip: el.cssClip()
4747
},
4848

49-
distance = [ start[ref[0]], start[ref[1]] ],
50-
51-
// we will need to re-assemble the queue to stack our animations in place
52-
queue = el.queue(),
53-
queuelen = queue.length;
49+
distance = [ start[ref[0]], start[ref[1]] ];
5450

5551
// define animations
5652
if ( percent ) {
@@ -92,12 +88,7 @@ return $.effects.define( "fold", "hide", function( o, done ) {
9288
done();
9389
});
9490

95-
// inject all the animations we just queued to be first in line (after "inprogress")
96-
if ( queuelen > 1) {
97-
queue.splice.apply( queue,
98-
[ 1, 0 ].concat( queue.splice( queuelen, 4 ) ) );
99-
}
100-
el.dequeue();
91+
$.effects.unshift( el, 4 );
10192
});
10293

10394
}));

ui/effect-pulsate.js

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -34,26 +34,20 @@ return $.effects.define( "pulsate", "show", function( o, done ) {
3434
anims = ( ( o.times || 5 ) * 2 ) + ( showhide ? 1 : 0 ),
3535
duration = o.duration / anims,
3636
animateTo = 0,
37-
queue = elem.queue(),
38-
queuelen = queue.length,
3937
i = 1;
4038

41-
if ( show || !elem.is(":visible")) {
39+
if ( show || !elem.is( ":visible" ) ) {
4240
elem.css( "opacity", 0 ).show();
4341
animateTo = 1;
4442
}
4543

4644
// anims - 1 opacity "toggles"
4745
for ( ; i < anims; i++ ) {
48-
elem.animate({
49-
opacity: animateTo
50-
}, duration, o.easing );
46+
elem.animate( { opacity: animateTo }, duration, o.easing );
5147
animateTo = 1 - animateTo;
5248
}
5349

54-
elem.animate({
55-
opacity: animateTo
56-
}, duration, o.easing);
50+
elem.animate( { opacity: animateTo }, duration, o.easing);
5751

5852
elem.queue(function() {
5953
if ( hide ) {
@@ -63,12 +57,7 @@ return $.effects.define( "pulsate", "show", function( o, done ) {
6357
done();
6458
});
6559

66-
// We just queued up "anims" animations, we need to put them next in the queue
67-
if ( queuelen > 1 ) {
68-
queue.splice.apply( queue,
69-
[ 1, 0 ].concat( queue.splice( queuelen, anims + 1 ) ) );
70-
}
71-
elem.dequeue();
60+
$.effects.unshift( elem, anims + 1 );
7261
});
7362

7463
}));

ui/effect-shake.js

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,6 @@ return $.effects.define( "shake", function( o, done ) {
3737
animation = {},
3838
animation1 = {},
3939
animation2 = {},
40-
// we will need to re-assemble the queue to stack our animations in place
41-
queue = el.queue(),
42-
queuelen = queue.length,
4340
placeholder = $.effects.createPlaceholder( el );
4441

4542
// Animation
@@ -69,13 +66,7 @@ return $.effects.define( "shake", function( o, done ) {
6966
done();
7067
});
7168

72-
// inject all the animations we just queued to be first in line (after "inprogress")
73-
if ( queuelen > 1) {
74-
queue.splice.apply( queue,
75-
[ 1, 0 ].concat( queue.splice( queuelen, anims + 1 ) ) );
76-
}
77-
el.dequeue();
78-
69+
$.effects.unshift( el, anims + 1 );
7970
});
8071

8172
}));

ui/effect.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1059,6 +1059,18 @@ $.extend( $.effects, {
10591059
};
10601060
},
10611061

1062+
// Injects recently queued functions to be first in line (after "inprogress")
1063+
unshift: function( el, count ) {
1064+
var queue = el.queue(),
1065+
queuelen = queue.length;
1066+
1067+
if ( queuelen > count + 1 ) {
1068+
queue.splice.apply( queue,
1069+
[ 1, 0 ].concat( queue.splice( queuelen, count ) ) );
1070+
}
1071+
el.dequeue();
1072+
},
1073+
10621074
saveStyle: function( element ) {
10631075
element.data( dataSpaceStyle, element[ 0 ].style.cssText );
10641076
},

0 commit comments

Comments
 (0)