Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 引导转盘:需要自动循环一次,但“下一步”和“上一步”按钮应在幻灯片中循环_Jquery_Twitter Bootstrap_Carousel - Fatal编程技术网

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