我正在使用jQuery Cycle Plugin作为图片滑块。我正在寻找的是这样的:
image1.jpg>>淡出>>在空白帧上保持第二个>> fadein image2.jpg>>重复
如何控制下一个淡入淡出动画开始前的延迟,或两次幻灯片过渡之间的间隔?
我的意思是当第一张幻灯片图片完全淡出时,我需要它暂停1或2秒才能在第二张图片实际开始其淡入淡出动画之前。
**当我使用寻呼机或下一个/上一个链接更改幻灯片时,我需要让它工作。
我尝试过同步:0来停止2张幻灯片之间的同时淡出过渡,但不是我想要的。
任何建议都将不胜感激,谢谢。
答案 0 :(得分:3)
您可以定义自定义过渡,淡出当前幻灯片,等待,然后在下一张幻灯片中淡出。
有关比下面更完整的示例,请参阅:http://jsfiddle.net/QGRv9/1/
$.fn.cycle.transitions.fadeOutWaitFadeIn = function($cont, $slides, opts) {
opts.fxFn = function(curr, next, opts, after) {
$(curr).fadeOut(opts.fadeSpeed, function() {
$(next).delay(opts.delayBetweenFades).fadeIn(opts.fadeSpeed, function() {
after();
});
});
};
};
$(function() {
$('#slideshow').cycle({
fx: 'fadeOutWaitFadeIn',
fadeSpeed: 500,
delayBetweenFades: 2000,
//The timeout value includes the fade speed (twice) and delay between fades.
//e.g. For a 3000 ms timeout, use 3000 + 500 * 2 + 2000 = 6000.
timeout: 6000
});
});
请注意,我可能在这里做错了。超时不应包含其他值。还有一个小问题:第一张幻灯片显示为6000毫秒而不是3000毫秒。
答案 1 :(得分:0)
一种方法是在每张图像后插入空白幻灯片。然后,您可以使用timeoutFn选项提供不同的超时值,具体取决于幻灯片是图像还是空白幻灯片。
这是一个示例,其中图像显示5秒钟,空白幻灯片显示2秒钟:
<div id="slideshow">
<img src="image1.jpg" />
<span></span>
<img src="image2.jpg" />
<span></span>
<img src="image3.jpg" />
<span></span>
</div>
function timeoutfn(currSlideElement, nextSlideElement, options, forwardFlag) {
var imgtime = 5000;
var blanktime = 2000;
if ($(currSlideElement).is('img'))
return imgtime;
return blanktime;
};
$(function() {
$('#slideshow').cycle({
fx: 'fade',
speed: 400,
timeoutFn: timeoutfn
});
});