我想在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为循环外的变量赋值?
可以在此处找到jcarousellite脚本:github
答案 0 :(得分:0)
jCarousel中没有超时选项,它是自动等效的。然后你可以在初始化后访问创建的jcarousel元素
jQuery('#mycarousel').data('jcarousel')
这将返回当前轮播的实例对象,您应该能够通过jQuery('#mycarousel').data('jcarousel').options
访问选项对象来动态更改选项,因此您可以通过执行类似
jQuery('#mycarousel').data('jcarousel').options.auto = 5;
答案 1 :(得分: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
});
}
},
});