0

良い一日、

私は過去12時間これを検索して調査しましたが、私の問題の解決策を見つけることができません。そして、私はJavascriptとjQueryにあまり精通していないので、何を探して検索するのか正確にはわかりません。

私はこのjQueryImageRotatorを自分のサイトに正常に実装し、ローテーターの1つのインスタンスがページ上で機能することで見事に機能しました。ここで、1つのページで複数のローテーターを同時に動作させることが可能かどうかを知りたいと思います。

これまでの私の努力は成功していません。2つのローテーターは正しくロードされますが、最初のローテーターの最初の画像が再生を開始します。次に、2番目のローテーターに切り替えて、最初のローテーターを空白のままにして、そのローテーターを回転させ続けます。

これに関するどんな助けと指示も大いに感謝されるでしょう。

4

1 に答える 1

2

現在実装されているため、いいえ。div#rotatorローテータ コードは、最大でも 1 つの要素であるすべての match のコンテンツに対して明示的に動作します

次のようなことを行うと、.idを含む div のul.

function theRotator( id ) {
    //Set the opacity of all images to 0
    var jqElem = $( '#' + id );
    jqElem.find('ul li').css({opacity: 0.0});

    //Get the first image and display it (gets set to full opacity)
    jqElem.find('ul li:first').css({opacity: 1.0});

    //Call the rotator function to run the slideshow, 6000 = change to next image after 6 seconds
    setInterval(rotate,6000);

    function rotate() { 
        //Get the first image
        var current = (jqElem.find('ul li.show')?  jqElem.find('ul li.show') : jqElem.find('ul li:first'));

        //Get next image, when it reaches the end, rotate it back to the first image
        var next = ((current.next().length) ? ((current.next().hasClass('show')) ? jqElem.find('ul li:first') :current.next()) : jqElem.find('ul li:first'));   

        //Set the fade in effect for the next image, the show class has higher z-index
        next.css({opacity: 0.0})
        .addClass('show')
        .animate({opacity: 1.0}, 1000);

        //Hide the current image
        current.animate({opacity: 0.0}, 1000)
        .removeClass('show');

    };

}


$(document).ready(function() {      
    //Load the slideshow
    theRotator( <id of rotator container 1> );
    theRotator( <id of rotator container 2> );
    ...
});
于 2011-10-19T08:52:23.167 に答える