Javascript 带选项卡的转盘:当转盘滑动到下一张或上一张幻灯片时,调整活动选项卡

Javascript 带选项卡的转盘:当转盘滑动到下一张或上一张幻灯片时,调整活动选项卡,javascript,jquery,twitter-bootstrap,twitter-bootstrap-3,carousel,Javascript,Jquery,Twitter Bootstrap,Twitter Bootstrap 3,Carousel,我有一个没有指示按钮的Twitter引导3转盘。 我使用的不是那些指示器按钮,而是选项卡(我在CSS中相应地设置了样式)。 这样,用户就可以知道每张幻灯片是什么(基于选项卡标签),因此更容易转到他感兴趣的幻灯片 HTML如下所示: <div class="carousel slide" data-ride="carousel" id="whatIsCarousel"> <div class="carousel-inner"> <div cl

我有一个没有指示按钮的Twitter引导3转盘。 我使用的不是那些指示器按钮,而是选项卡(我在CSS中相应地设置了样式)。 这样,用户就可以知道每张幻灯片是什么(基于选项卡标签),因此更容易转到他感兴趣的幻灯片

HTML如下所示:

<div class="carousel slide" data-ride="carousel" id="whatIsCarousel">
    <div class="carousel-inner">
        <div class="item active">
            <img src="slide0.png">
        </div>
        <div class="item">
            <img src="slide1.png">
        </div>
        ...
    </div>
    <a class="left carousel-control" data-slide="prev" href="#whatIsCarousel">
        <span class="glyphicon glyphicon-chevron-left"></span>
    </a>
    <a class="right carousel-control" data-slide="next" href="#whatIsCarousel">
        <span class="glyphicon glyphicon-chevron-right"></span>
    </a>
</div>
<ul class="nav nav-justified" id="whatIsCarouselButtons">
    <li class="active" data-target="#whatIsCarousel" data-slide-to="0">
        <a data-toggle="tab" href="#">Slide 0</a>
    </li>
    <li data-target="#whatIsCarousel" data-slide-to="1">
        <a data-toggle="tab" href="#">Slide 1</a>
    </li>
    ...
</ul>

我希望这种方式可以帮助您:

Bootply

Js

$(document).ready( function() {
    $('.carousel').carousel();
    $('#whatIsCarousel').on('slide.bs.carousel', function(e) {
        var from = $('.nav li.active').index();
        var next = $(e.relatedTarget);
        var to =  next.index();

        // This could interest you
        $('.nav li').removeClass('active').eq(to).addClass('active');

    });
});
$('.nav li').removeClass('active').eq(to).addClass('active');
专注于

$(document).ready( function() {
    $('.carousel').carousel();
    $('#whatIsCarousel').on('slide.bs.carousel', function(e) {
        var from = $('.nav li.active').index();
        var next = $(e.relatedTarget);
        var to =  next.index();

        // This could interest you
        $('.nav li').removeClass('active').eq(to).addClass('active');

    });
});
$('.nav li').removeClass('active').eq(to).addClass('active');

您可以从所有选项卡中删除
active
类,并将其添加到具有相同索引的选项卡中。

我希望这种方法可以帮助您:

Bootply

Js

$(document).ready( function() {
    $('.carousel').carousel();
    $('#whatIsCarousel').on('slide.bs.carousel', function(e) {
        var from = $('.nav li.active').index();
        var next = $(e.relatedTarget);
        var to =  next.index();

        // This could interest you
        $('.nav li').removeClass('active').eq(to).addClass('active');

    });
});
$('.nav li').removeClass('active').eq(to).addClass('active');
专注于

$(document).ready( function() {
    $('.carousel').carousel();
    $('#whatIsCarousel').on('slide.bs.carousel', function(e) {
        var from = $('.nav li.active').index();
        var next = $(e.relatedTarget);
        var to =  next.index();

        // This could interest you
        $('.nav li').removeClass('active').eq(to).addClass('active');

    });
});
$('.nav li').removeClass('active').eq(to).addClass('active');
您可以从所有选项卡中删除
active
类,并将其添加到具有相同索引的选项卡中。

尝试此操作

$(document).ready( function() {
    $('#myCarousel').carousel({
        interval:   4000
    });

    var clickEvent = false;
    $('#myCarousel').on('click', '.nav a', function() {
            clickEvent = true;
            $('.nav li').removeClass('active');
            $(this).parent().addClass('active');        
    }).on('slid.bs.carousel', function(e) {
        if(!clickEvent) {
            var count = $('.nav li').length -1;
            var current = $('.nav li.active');
            current.removeClass('active').next().addClass('active');
            var id = parseInt(current.data('slide-to')) +1;
            if(count+1 == id) {
                $('.nav li').first().addClass('active');    
            }
        }
        clickEvent = false;
    });
});
试试这个

$(document).ready( function() {
    $('#myCarousel').carousel({
        interval:   4000
    });

    var clickEvent = false;
    $('#myCarousel').on('click', '.nav a', function() {
            clickEvent = true;
            $('.nav li').removeClass('active');
            $(this).parent().addClass('active');        
    }).on('slid.bs.carousel', function(e) {
        if(!clickEvent) {
            var count = $('.nav li').length -1;
            var current = $('.nav li.active');
            current.removeClass('active').next().addClass('active');
            var id = parseInt(current.data('slide-to')) +1;
            if(count+1 == id) {
                $('.nav li').first().addClass('active');    
            }
        }
        clickEvent = false;
    });
});

太好了,谢谢!因为我已经有了需要更改的.nav元素:$('whatIsCarouselButtons').find('li').removeClass('active').eq(to).addClass('active');太好了,谢谢!因为我已经有了需要更改的.nav元素:$('whatIsCarouselButtons').find('li').removeClass('active').eq(to).addClass('active');