为 jQuery 轮播(分页)检测活动 <li>

detect active <li> for jQuery carousel (pagination)

我对 jQuery 轮播脚本的更改/尝试可以在下面找到;然而,令我沮丧的是,活动的 class 没有正确附加,而是总是将第一个 <li> 显示为活动的。我还希望能够 'click' 每个 <li> 代表分页,以便它可以转到该幻灯片。这是一个非常小的 3 图像轮播。请大家来个大饱眼福jFiddle.如果有什么好的建议,请提出来。

jQuery(document).ready(function(){
    /**
     * Check if first li element is hidden
     * then show
     */
    if( jQuery('.carouselNav li:first-child').is(':hidden') ) {
        // Toggle visibility
        jQuery('.carouselNav li:first-child').toggle();
         jQuery('.carouselPagination li:first-child').addClass('active');
    }
    // Interval time
    var carouselInterval = 5000;
    // Slider
    function carouselSlide(){
        // Check if last element was reached
        if( jQuery('.carouselNav li:visible').next().length == 0 ) {
            // Hide last li element
            jQuery('.carouselNav li:last-child').slideUp('fast');
            // Show the first one
            jQuery('.carouselNav li:first-child').slideDown('fast');

            jQuery('.carouselPagination li:last-child').removeClass('active');
            jQuery('.carouselPagination li:first-child').addClass('active');
        } else {
            // Rotate elements
            jQuery('.carouselNav li:visible').slideUp('fast').next('li:hidden').slideDown('fast');
            jQuery('.carouselPagination active').removeClass('active').next('li').addClass('active');
        }
    }
    // Set Interval
    var carouselScroll = setInterval(carouselSlide,carouselInterval);
    // Pause on hover
    jQuery('.carousel').hover(function() {
        clearInterval(carouselScroll);
    }, function() {
        carouselScroll = setInterval(carouselSlide,carouselInterval);
        carouselSlide();
    });
});

您的代码中的一些小修复:

首先,您要查找 "active" class 的列表项,因此请确保第一个列表项具有 "active" class.

<li class="active">

其次,"jQuery('.carouselPagination active')" 在按 class 名称激活到 select 之前缺少点。

jQuery('.carouselPagination li.active').removeClass('active').next('li').addClass('active');

这是具有修复和点击功能的代码。代码很乱,但它应该能让你知道如何开始。 https://jsfiddle.net/x89wxoqu/