【发布时间】:2016-09-24 08:17:12
【问题描述】:
我正在使用 Bootstrap 轮播控件,并且我需要使用比幻灯片更少的指示器。例如,对于幻灯片 1 - 3,第一个指示器将处于活动状态。当我点击另一个指标时,它会跳到幻灯片 4。
我试图通过在 HTML 中包含所有指标来解决这个问题,但用display: none 隐藏其中一些指标。然后用 JS 找到活动幻灯片,删除.active 类并将其添加到右侧指示器中。
HTML
<!-- Indicators -->
<ul class="carousel-indicators">
<!-- For these three only #a indicator should be active -->
<li id="a" data-target="#carousel" data-slide-to="0" class="active"></li>
<li id="a1" class="hidden" data-target="#carousel" data-slide-to="1"></li>
<li id="a2" class="hidden" data-target="#carousel" data-slide-to="2"></li>
<!-- another group -->
<li id="b" data-target="#carousel" data-slide-to="3"></li>
</ul>
JavaScript
$('#carousel').on('slid.bs.carousel', function (e) {
if ($("#a1").hasClass("active")) {
$("#a1").removeClass("active");
$("#a").addClass("active");
} else if ($("#a2").hasClass("active")) {
$("#a2").removeClass("active");
$("#a").addClass("active");
}
});
这是一个例子 - https://jsfiddle.net/9x5u7kjx/2/
我认为这根本不是优雅的解决方案,那么有没有更好的方法呢?
编辑: 我将尝试更清楚地解释它。
例如有 12 张幻灯片,它们会一张一张地自动滑动。它们可以由箭头(左和右)控制。 但只有 4 个指标(轮播下方的那些圆圈)。对于幻灯片 1 - 3,第一个指示器应处于活动状态,对于 4 - 6,第二个指示器应处于活动状态,依此类推。
所以我可以使用箭头一个一个地滑动项目,但是当我点击第二个指示器时,轮播会跳到幻灯片 4。
看看这个例子,它应该可以正常工作,但我认为这可以更好地解决。
【问题讨论】:
-
考虑编辑你的问题,不清楚你在问什么
-
您是说点击下一个指示器时,您的幻灯片应该移动到第二张幻灯片而不是第四张幻灯片?
-
对不起,现在更明白了吗?
标签: javascript jquery html twitter-bootstrap carousel