Reputation: 737
//S1
$('#s1').cycle({
fx: 'scrollDown',
speed: 500,
timeout: 1000,
});
//S2
$('#s2').cycle({
fx: 'scrollDown',
speed: 500,
timeout: 2000
});
//S3
$('#s3').cycle({
fx: 'scrollDown',
speed: 500,
timeout: 3000
});
I have three sliders. I want to slide them one by one. After 1st slide scroll, it should be pause till 3rd slider scroll. Any help on how can I do this?
Upvotes: 1
Views: 102
Reputation: 41832
Small Modifications to @NicolaeOlariu's answer
function applyAnimeScroll(a, b, c) {
return {
fx: 'scrollDown',
speed: 500,
timeout: 1000,
after: function () {
$('#s1').cycle(a);
$('#s2').cycle(b);
$('#s3').cycle(c);
}
};
}
var s1 = $('#s1').cycle(applyAnimeScroll('pause', 'resume', 'pause'));
var s2 = $('#s2').cycle(applyAnimeScroll('pause', 'pause', 'resume'));
var s3 = $('#s3').cycle(applyAnimeScroll('resume', 'pause', 'pause'));
Upvotes: 2
Reputation: 2555
Have a look at the following source code. It's using jquery.cycle
's internal events to pause/resume the other sliders. I think it's more robust than using simple delays (which seems to cause some disturbance after a while).
//S1
var s1 = $('#s1').cycle({
fx: 'scrollDown',
speed: 500,
timeout: 500,
after: function() {
$('#s1').cycle('pause'); // when slider1 finishes one slide, pause it
$('#s2').cycle('resume'); // resume next slider, in this case, slider2
}
});
//S2
var s2 = $('#s2').cycle({
fx: 'scrollDown',
speed: 500,
timeout: 500,
after: function() {
$('#s2').cycle('pause'); // when slider2 finishes one slide, pause it
$('#s3').cycle('resume'); // resume next slider, in this case, slider3
}
});
s2.cycle('pause'); // by default pause slider2
//S3
var s3 = $('#s3').cycle({
fx: 'scrollDown',
speed: 500,
timeout: 500,
after: function() {
$('#s3').cycle('pause'); // when slider3 finishes one slide, pause it
$('#s1').cycle('resume'); // resume next slider, in this case, slider1
}
});
s3.cycle('pause'); // by default pause slider3
I've also bundled up a fiddle.
Upvotes: 2
Reputation: 666
Use delay property.
$('#s1').cycle({
fx: 'scrollDown',
speed: 500,
delay : -5000
});
//S2
$('#s2').cycle({
fx: 'scrollDown',
speed: 500,
delay : -3000
});
//S3
$('#s3').cycle({
fx: 'scrollDown',
speed: 500,
delay:-2000
});
Upvotes: 3