0

我想在 jcarouselLITE 中设置两个计时器(注意 - 不是 jcarousel)。理想情况下,前三张幻灯片的超时时间:1000,第四张幻灯片的超时时间:8000。以下代码获取当前滑块的索引并使用函数variablex相应地更改 var:afterEnd

var variablex;
$('.slideshow').jCarouselLite({
    auto: true,         
    afterEnd: function(a){
        var index = $(a[0]).index(); 
        if (index == 3) {
            variablex = 8000;
        }
        else {variablex = 1000;}        
    },
    timeout: variablex;
});

我意识到 jCarouselLite 函数不会继续检查值timeout- 有没有办法用 js 将值分配给循环外的变量?

jcarouselite 脚本可以在这里找到:github

4

2 回答 2

0

jCarousel 中没有超时选项,它是 auto 等价的。然后您可以在初始化后访问创建的 jcarousel 元素

jQuery('#mycarousel').data('jcarousel')

这将返回当前轮播的实例对象,您应该能够通过访问选项对象来动态更改选项jQuery('#mycarousel').data('jcarousel').options,因此您可以通过执行类似的操作来更改自动选项

jQuery('#mycarousel').data('jcarousel').options.auto = 5;
于 2012-04-13T11:57:43.917 回答
0

这只是一个原始想法,因此可能无法按预期工作。

var slideshowTimeout = 1000;
var $slideShow = $('.slideshow');
var slideshowCount = $slideShow.find('li').length +3;
var isSlowedDown = false;

$slideShow.jCarouselLite({
    auto: true,
    timeout: slideshowTimeout,         
    afterEnd: function(a){
        var index = $(a[0]).index();
        if (index === slideshowCount && isSlowedDown === false) {
            slideshowTimeout = 4000;
            isSlowedDown = true;
            $slideShow.trigger("endCarousel")
            $slideShow.jCarouselLite({
                auto: true,
                timeout: slideshowTimeout,
                start: slideshowCount
            });
        }      
    },
});

示例:http: //jsfiddle.net/e2e4V/1/

于 2012-04-13T12:06:15.037 回答