gpt4 book ai didi

twitter-bootstrap - Twitter Bootstrap 轮播幻灯片持续时间

转载 作者:行者123 更新时间:2023-12-01 05:25:10 25 4
gpt4 key购买 nike

在 Twitter Bootstrap Carousel 中,如何使特定幻灯片具有与其他幻灯片不同的持续时间?

我可以使用“间隔”参数更改整个 slider 的持续时间,但不知道如何为特定幻灯片设置自定义持续时间。

最佳答案

Bootstrap 3.1 轮播不允许每张幻灯片有不同的持续时间,但它提供 一种方法一个事件我们可以使用它来实现这一点。

我们将使用 slid.bs.carousel检测轮播何时完成幻灯片转换的事件和 .carousel('pause')停止轮播在项目中循环的选项。

我们将使用这个属性 data-interval="x"在具有不同持续时间的每个轮播项目上,因此我们的 html 将如下所示:

<div class="carousel-inner">
<div class="active item" data-interval="3000">
<img src="Url 1" />
</div>
<div class="item" data-interval="6000">
<img src="Url 2" />
</div>
<div class="item" data-interval="9000">
<img src="Url 3" />
</div>
</div>

现在,我们要做的就是:
  • 使用 slid.bs.carousel 检测何时显示新项目
    事件
  • 查看他的持续时间
  • 使用 .carousel('pause') 暂停轮播
  • 在项目的持续时间和持续时间之后设置超时
    完成后,我们应该取消暂停轮播

  • javascript 代码将如下所示:
    var t;

    var start = $('#myCarousel').find('.active').attr('data-interval');
    t = setTimeout("$('#myCarousel').carousel({interval: 1000});", start-1000);

    $('#myCarousel').on('slid.bs.carousel', function () {
    clearTimeout(t);
    var duration = $(this).find('.active').attr('data-interval');

    $('#myCarousel').carousel('pause');
    t = setTimeout("$('#myCarousel').carousel();", duration-1000);
    })

    $('.carousel-control.right').on('click', function(){
    clearTimeout(t);
    });

    $('.carousel-control.left').on('click', function(){
    clearTimeout(t);
    });

    如您所见,我们在开始时被迫添加一个起始间隔,我将其设置为 1000 毫秒,但每次暂停轮播时我都会将其删除 duration-1000 .我使用下面的行来解决第一个项目问题,因为该项目没有被 slid event 捕获。 .
    var start = $('#myCarousel').find('.active').attr('data-interval');
    t = setTimeout("$('#myCarousel').carousel({interval: 1000});", start-1000);

    我还注意到,如果用户按下箭头,超时就会变得疯狂,这就是为什么我每次用户按下左右箭头时都会清除超时。

    这是我的现场示例 http://jsfiddle.net/paulalexandru/52KBT/ ,希望此回复对您有所帮助。

    关于twitter-bootstrap - Twitter Bootstrap 轮播幻灯片持续时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14236516/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com