【问题标题】:JQuery Cycle Plugin - Delay Interval Between Slides QuestionjQuery Cycle Plugin - 幻灯片之间的延迟时间间隔问题
【发布时间】:2011-05-19 21:06:37
【问题描述】:

我正在为图像滑块使用 jQuery Cycle 插件。我正在寻找的是这样的:

image1.jpg >> 淡出 >> 按住空白帧一秒钟 >> 淡入 image2.jpg >> 重复

如何控制下一个淡入淡出动画开始之前的延迟,或 2 次幻灯片转换之间的间隔?

我的意思是当第一张幻灯片图像完全淡出时,我需要它暂停 1 或 2 秒,然后第二张图片才真正开始淡入动画。

** 当我使用寻呼机或下一个/上一个链接更改幻灯片时,我需要让它工作。

我尝试将 sync: 0 设置为停止 2 张幻灯片之间的同时淡入淡出过渡,但不是我想要的。

任何建议将不胜感激,谢谢。

【问题讨论】:

    标签: delay fade intervals jquery-cycle


    【解决方案1】:

    您可以定义一个自定义过渡,淡出当前幻灯片,等待,然后淡入下一张幻灯片。

    有关比下面更完整的示例,请参阅: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 毫秒。

    【讨论】:

    • 这正是我要找的!感谢一百万凯拉,我的英雄!
    • 我可以获取您的电子邮件或网站以用于商业项目吗?
    • @MrSplashyPants 抱歉,我不确定您的确切意思,但如果您想详细说明,可以点击我的名字查看我的电子邮件。
    • 嗨,没有可用的联系信息:i.imgur.com/LSxri.png 请给我发电子邮件 E2AjffrVoGR4@meltmail.com,我会解释。谢谢!
    【解决方案2】:

    一种方法是在每张图片后插入一张空白幻灯片。然后,您可以使用 timeoutFn 选项根据幻灯片是图像还是空白幻灯片来提供不同的超时值。

    这是一个示例,其中图像显示 5 秒,空白幻灯片显示 2 秒:

    http://jsfiddle.net/7jJe3/

    <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
        });
    });
    

    【讨论】:

    • 谢谢凯拉,很好的解决方法。如果我只是让滑块自行运行,那真的会起作用,但现在的问题是,当我使用寻呼机链接更改幻灯片时(或者当我单击下一个/上一个幻灯片按钮时),我需要延迟工作。这可能吗?
    • 没有这个解决方法,但看看我的其他答案。
    猜你喜欢
    • 2012-04-29
    • 1970-01-01
    • 2015-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-08
    • 1970-01-01
    • 2012-02-02
    相关资源
    最近更新 更多