0

スクリプトを使用して、順序付けられていないリストに保存されているさまざまな画像を回転させます。スクリプトは機能していますが、特定の Li に適用されたプリセット クラスを削除しているようです。スクリプトを現在とまったく同じように動作させたいのですが、Li に設定したクラスを削除したくありません。誰かが提案や修正を提供できますか? ありがとうございました。ここでフィドルの例を参照してください。

http://jsfiddle.net/trobbins26/5U4Cr/5/

または以下のスクリプト:

function theRotator() {
        //Set the opacity of all images to 0
        $('div.rotator ul li').css({opacity: 0.0});

        //Get the first image and display it (gets set to full opacity)
        $('div.rotator 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()',4000);

        }

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

        if ( current.length == 0 ) current = $('div.rotator 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')) ? $('div.rotator ul li:first') :current.next()) : $('div.rotator ul li:first'));

        //Un-comment the 3 lines below to get the images in random order

        //var sibs = current.siblings();
        //var rndNum = Math.floor(Math.random() * sibs.length );
        //var next = $( sibs[ rndNum ] );


        //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}, 500);

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

        };
setTimeout(function(){
        $(document).ready(function() {        
            //Load the slideshow
            theRotator();
            $('div.rotator').fadeIn(500);
            $('div.rotator ul li').fadeIn(500); // tweek for IE
        });
        }, 500);
4

1 に答える 1

0

このスクリプトは問題ではありません。クラスを削除する別のスクリプトが必要です。ただし、現在、リスト項目に「プリセット」クラスはありません。適用される唯一のクラスは、期待される「show」クラスです。このクラスも予想どおり、適切に削除されています。

これが実際に機能することを示すために、スライダーを 2 つのクラス (強調のために背景色を提供する) で再現しました。jqueryは一切変更していません。

ここでデモを表示: http://fluidev.com/stack/rotate.html

于 2012-10-05T05:40:41.560 に答える