多个选项卡案例直接用

 

简述:<div class="carousel-section"> <!-- Carousel 1 --> <div id="carousel1" class="bannerbox"> <div class="carousel-inner"> <div class="carousel-item active"> <img src="image1.jpg" alt="Slide 1"> </div> <div class="carousel-item"> <img src="image2.jpg" alt="Slide 2"> </div> <div class="carousel-item"> <img src="image3.jpg" alt="Slide 3"> </div> </div> <button class="carousel-control-prev" onclick="prevSlide(&#39;carousel1&#39;)">Previous</...

详情:

<div class="carousel-section">

    <!-- Carousel 1 -->

    <div id="carousel1" class="bannerbox">

        <div class="carousel-inner">

            <div class="carousel-item active">

                <img src="image1.jpg" alt="Slide 1">

            </div>

            <div class="carousel-item">

                <img src="image2.jpg" alt="Slide 2">

            </div>

            <div class="carousel-item">

                <img src="image3.jpg" alt="Slide 3">

            </div>

        </div>

        <button class="carousel-control-prev" onclick="prevSlide('carousel1')">Previous</button>

        <button class="carousel-control-next" onclick="nextSlide('carousel1')">Next</button>


        <!-- Dot Indicators -->

        <div class="slideshow__control-wrapper">

            <button class="slider-counter__link slider-counter__link--dots link" aria-label="Load slide 1" onclick="currentSlide('carousel1', 0)"><span class="dot"></span></button>

            <button class="slider-counter__link slider-counter__link--dots link" aria-label="Load slide 2" onclick="currentSlide('carousel1', 1)"><span class="dot"></span></button>

            <button class="slider-counter__link slider-counter__link--dots link" aria-label="Load slide 3" onclick="currentSlide('carousel1', 2)"><span class="dot"></span></button>

        </div>

    </div>


    <!-- Carousel 2 -->

    <div id="carousel2" class="bannerbox">

        <div class="carousel-inner">

            <div class="carousel-item active">

                <img src="image4.jpg" alt="Slide 1">

            </div>

            <div class="carousel-item">

                <img src="image5.jpg" alt="Slide 2">

            </div>

            <div class="carousel-item">

                <img src="image6.jpg" alt="Slide 3">

            </div>

        </div>

        <button class="carousel-control-prev" onclick="prevSlide('carousel2')">Previous</button>

        <button class="carousel-control-next" onclick="nextSlide('carousel2')">Next</button>


        <!-- Dot Indicators -->

        <div class="slideshow__control-wrapper">

            <button class="slider-counter__link slider-counter__link--dots link" aria-label="Load slide 1" onclick="currentSlide('carousel2', 0)"><span class="dot"></span></button>

            <button class="slider-counter__link slider-counter__link--dots link" aria-label="Load slide 2" onclick="currentSlide('carousel2', 1)"><span class="dot"></span></button>

            <button class="slider-counter__link slider-counter__link--dots link" aria-label="Load slide 3" onclick="currentSlide('carousel2', 2)"><span class="dot"></span></button>

        </div>

    </div>


    <!-- Add more carousels as needed -->

</div>


<style>


.carousel {

    position: relative;

    overflow: hidden;

}


.carousel-inner {

    display: flex;

    transition: transform 0.5s ease;

}


.carousel-item {

    flex: 0 0 100%;

    display: none;

}


.carousel-item.active {

    display: block;

}


.carousel-control-prev,

.carousel-control-next {

    position: absolute;

    top: 50%;

    transform: translateY(-50%);

    background-color: rgba(0, 0, 0, 0.5);

    color: #fff;

    border: none;

    padding: 10px;

    cursor: pointer;

    z-index: 1;

}


.carousel-control-prev {

    left: 0;

}


.carousel-control-next {

    right: 0;

}


.slideshow__control-wrapper {

    position: absolute;

    bottom: 20px;

    left: 50%;

    transform: translateX(-50%);

    display: flex;

    justify-content: center;

    z-index: 1;

}


.slider-counter__link {

    background: none;

    border: none;

    padding: 0;

    margin: 0 5px;

    cursor: pointer;

}


.dot {

    display: block;

    width: 12px;

    height: 12px;

    background-color: #bbb;

    border-radius: 50%;

}


.slider-counter__link--active .dot {

    background-color: #717171;

}

</style>


<script>

document.addEventListener('DOMContentLoaded', function() {

    const carousels = document.querySelectorAll('.bannerbox');


    carousels.forEach(carousel => {

        const slides = carousel.querySelectorAll('.carousel-item');

        const dots = carousel.querySelectorAll('.slider-counter__link');

        let currentIndex = 0;


        function showSlide(index) {

            slides.forEach((slide, i) => {

                slide.classList.toggle('active', i === index);

            });

            dots.forEach((dot, i) => {

                dot.classList.toggle('slider-counter__link--active', i === index);

            });

        }


        function prevSlide() {

            currentIndex = (currentIndex === 0) ? slides.length - 1 : currentIndex - 1;

            showSlide(currentIndex);

        }


        function nextSlide() {

            currentIndex = (currentIndex === slides.length - 1) ? 0 : currentIndex + 1;

            showSlide(currentIndex);

        }


        function currentSlide(index) {

            currentIndex = index;

            showSlide(currentIndex);

        }


        // Show the first slide initially

        showSlide(currentIndex);


        // Assign functions to control buttons

        carousel.querySelector('.carousel-control-prev').addEventListener('click', prevSlide);

        carousel.querySelector('.carousel-control-next').addEventListener('click', nextSlide);


        dots.forEach((dot, index) => {

            dot.addEventListener('click', function() {

                currentSlide(index);

            });

        });

    });

});

</script>