【问题标题】:jQuery cycle plugin with different timeout values for each slide每张幻灯片具有不同超时值的 jQuery 循环插件
【发布时间】:2010-06-19 09:50:03
【问题描述】:

我正在尝试使用 jQuery 循环插件来循环使用不同的引号。我希望根据报价的长度显示不同时间的报价。为了实现这一点,我让内容管理系统将秒数作为类名(例如 dur13)输出 13 秒。

这是我的非工作尝试:

$('.featureFade').cycle({cycleTimeout: 10, after: onCycleAfter});

function onCycleAfter() { 
    $('.featureFade').cycle('pause');
    var duration = $(this).attr('class').substring($(this).attr('class').indexOf('dur')+3)
    setTimeout(oncycleEnd, duration * 1000); 
}
function oncycleEnd() { 
    $('.featureFade').cycle('resume');
}

循环可以吗?如果没有,是否有另一个插件可以工作?我真的不需要花哨的效果,只需淡入淡出就足够了。

非常感谢

【问题讨论】:

    标签: jquery timeout jquery-cycle


    【解决方案1】:

    您可以使用timeoutFn option,如下所示:

    $('.featureFade').cycle({
      timeoutFn: function(currElement, nextElement, opts, isForward) { 
        var duration = $(currElement).attr('class').substring($(currElement).attr('class').indexOf('dur')+3)
        return duration * 1000;
      }
    });
    

    但是,您可以使用data attribute 代替类,如下所示:

    <img data-duration="2000" src="..." />
    

    那么你的代码就简单一点:

    $('.featureFade').cycle({
      timeoutFn: function(currElement, nextElement, opts, isForward) { 
        return parseInt($(currElement).attr('data-duration'), 10);
      }
    });
    

    【讨论】:

    • 我喜欢数据属性的想法,干净多了。
    • @Max - 尝试提醒号码,确保您的持续时间像您认为的那样出来......例如,如果您有class="dur2 otherClass",您会得到一个 isNaN 异常.. .这就是我建议数据属性路由的原因。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-30
    • 1970-01-01
    • 2011-05-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多