1

jcarousel プラグインを使用して、各スライダーの外部コントロールを使用して同じページで複数のスライダーを再生していますが、コントロールを押すと、所属するコントロールではなくすべてのスライダーがアニメーション化されます! ここにコード:

<div id="mycarousel">
        <ul>
        <li>item</li>
        <li>item</li>
        </ul>
    <div class="control">
      <a href="#" class="nav_active">1</a>
      <a href="#">2</a>
    </div>  
</div>          

<div id="mycarousel_2">
        <ul>
        <li>item</li>
        <li>item</li>
        </ul>
    <div class="control">
      <a href="#" class="nav_active">1</a>
      <a href="#">2</a>
    </div>  
</div>

ここでJS

/**
 * We use the initCallback callback
 * to assign functionality to the controls
 */
function mycarousel_initCallback(carousel) {
    jQuery('.control a').bind('click', function() {
        carousel.scroll(jQuery.jcarousel.intval(jQuery(this).text()));
        $('.control a').removeClass('nav_active');
        $(this).addClass('nav_active');
        return false;
    }); 
    jQuery('.jcarousel-scroll select').bind('change', function() {
        carousel.options.scroll = jQuery.jcarousel.intval(this.options[this.selectedIndex].value);
        return false;
    });
};

// Ride the carousel...
jQuery(document).ready(function() {
    jQuery("#mycarousel, #mycarousel_2").jcarousel({
        scroll: 1,
        animation: 1000,
        easing: 'easeOutQuart',
        vertical: true,
        initCallback: mycarousel_initCallback,
        // This tells jCarousel NOT to autobuild prev/next buttons
        buttonNextHTML: null,
        buttonPrevHTML: null
    });
});

すべてのスライダーを独自のコントロールで個別に実行するにはどうすればよいですか? ありがとう

4

2 に答える 2

1

私は同じ問題を抱えており、最初のカルーセルではクラス コントロールを使用しましたが、2 番目のカルーセルではクラス control_2 を使用しました。これは私を助けます

于 2012-07-14T20:30:31.030 に答える
1

あなたはこれを使うことができます、それは私のために働きます:

HTML

<div class="carousel_content">
    <ul class="mycarousel">
        <li>item1</li>
        <li>item2</li>
        <li>item3</li>
        <li>item4</li>
    </ul>
    <div class="controls">
        <a href="#" class="prev">Previous</a>
        <a href="#" class="next">Next</a>
    </div>  
</div>          

<div class="carousel_content">
    <ul class="mycarousel">
        <li>item1</li>
        <li>item2</li>
        <li>item3</li>
        <li>item4</li>
    </ul>
    <div class="controls">
        <a href="#" class="prev">Previous</a>
        <a href="#" class="next">Next</a>
    </div>  
</div>  

脚本

(function($){
    $('.mycarousel').jcarousel({
        scroll: 1,
        animation: 1000,
        easing: 'easeOutQuart',
        vertical: false,
        initCallback: mycarousel_initCallback,
        buttonNextHTML: null,
        buttonPrevHTML: null,
        itemLastOutCallback: {
            onAfterAnimation: disableCustomButtons
        },
        itemLastInCallback: {
            onAfterAnimation: disableCustomButtons
        }
    });

    function mycarousel_initCallback(carousel) {

        var elementPrev = carousel.container.next('.controls').children('.prev');
        var elementNext = carousel.container.next('.controls').children('.next');

        elementPrev.bind('click', function() {
            carousel.prev();
            return false;
        });

        elementNext.bind('click', function() {
            carousel.next();
            return false;
        });
    };

    function disableCustomButtons(carousel){

        var elementPrev = carousel.container.next('.controls').children('.prev');
        var elementNext = carousel.container.next('.controls').children('.next');

        if (carousel.first == 1) {
            elementPrev.addClass('inactive');
        } else {
            elementPrev.removeClass('inactive');
        }

        if (carousel.last == carousel.size()) {
            elementNext.addClass('inactive');
        } else {
            elementNext.removeClass('inactive');
        }

    };

})(jQuery);
于 2013-02-13T22:14:21.047 に答える