Jquery 引导转盘:需要自动循环一次,但“下一步”和“上一步”按钮应在幻灯片中循环
为了在图像之间来回循环,我使用数据属性换行Jquery 引导转盘:需要自动循环一次,但“下一步”和“上一步”按钮应在幻灯片中循环,jquery,twitter-bootstrap,carousel,Jquery,Twitter Bootstrap,Carousel,为了在图像之间来回循环,我使用数据属性换行 data-wrap="true" 这对我来说很好,但我也只想自动加载循环一次,然后它应该停止。如果我这样做: data-wrap="false" 它会成功的。但问题是,我希望旋转木马在页面加载时只循环一次,然后停止,同时仍然能够使用“下一个”和“上一个”按钮在图像之间来回循环 .即 当滑块到达其最后一个图像时,进一步单击“下一步”应打开第一个图像,同样,对于第一个图像,如果单击“上一步”,则应打开最后一个图像 我确实尝试添加数据属性interval
data-wrap="true"
这对我来说很好,但我也只想自动加载循环一次,然后它应该停止。如果我这样做:
data-wrap="false"
它会成功的。但问题是,我希望旋转木马在页面加载时只循环一次,然后停止,同时仍然能够使用“下一个”和“上一个”按钮在图像之间来回循环
.即
当滑块到达其最后一个图像时,进一步单击“下一步”应打开第一个图像,同样,对于第一个图像,如果单击“上一步”,则应打开最后一个图像
我确实尝试添加数据属性interval,但它也会停止自动循环
这是我迄今为止尝试过的,对我来说不起作用
var slide_counter = 0,
slider_1 = jQuery('#carousel-example-generic1'),
slider_2 = jQuery('#carousel-example-generic2');
slider_1.on('slide.bs.carousel', function(){
slide_counter++;
if(slide_counter == 3){
slider_1.carousel({
interval: false
});
slider_2.carousel({
interval: false
});
//slider_1.attr('data-interval', 'false');
//slider_2.attr('data-interval', 'false');
} // end if
});
第二个想法:
我想试试下面的方法。我对逻辑进行了评论
//listener for after slide
$('#myCarousel').on('slid.bs.carousel', function () {
//Each slide has a .item class to it, you can get the total number of slides like this
var totalItems = $('.item').length;
//find current slide number
var currentIndex = $('div.active').index() + 1;
//if slide number is last then stop carousel
if(totalItems == currentIndex){
$('.carousel').carousel({
interval: false
})
}
})
这是一个老生常谈的问题,但其他人在看这篇文章时可以找到答案:
var $carousel = $('#myCarousel');
$carousel.on('slid.bs.carousel', function (e) {
if($(e.target).find('.item.active').is(':last-child')) {
$carousel.carousel('pause');
}
});
只需将“换行”选项保持为“真”即可工作。使用侦听器检查滑块何时位于最后一张图像上,然后将间隔设置为“假”。@jordan请查看上面的代码,看看我犯了什么错误?不要自己跟踪计数:。旋转木马编号将旋转木马循环到基于0的特定帧,类似于数组。我也尝试过另一种方法,你能看看上面代码的第二种想法吗?如果你设置了一个引导层,我会处理它。似乎将interval设置为false的函数在侦听器函数中不起作用,但如果我在外部尝试,它确实起作用,但没有用:为什么要进行向下表决,这是在我们的项目中实现的,并且有效:
var $carousel = $('#myCarousel');
$carousel.on('slid.bs.carousel', function (e) {
if($(e.target).find('.item.active').is(':last-child')) {
$carousel.carousel('pause');
}
});