0

今日、iveはスライダーを作成しました。そのコードは次のようになります。

$(document).ready(function() {

    //Tworzenie Kontrolek
    var html = "<ol id=\"controls\">";
    $('#slider ul li').each(function(i) {
        html += "<a href=\"javascript:void(0);\"><li id=\"" + (i+1) + "\">" + (i+1) + "</li></a>";
    });
    html += "</ol>";
    $('#slider').after(html);
    //Koniec tworzenia kontrolek

    //Ustawianie
    var width = $('#slider').width();
    var slides = $('#slider li').length;
    $('#slider ul').css("width", "" + (width*slides) + "");
    //Koniec ustawiania

        //Animowanie Slide'ow
        var cur = 1;
        var kontrolka = -1;
        var slider = setInterval(function() {
            if(cur < slides){   
                $('#slider ul').animate({left: "-" + (cur*width) + "px"},"linear");
                cur+=1;
                kontrolka+=1;
             }
             if(cur == slides){
                $('#slider ul').delay(3000).animate({left: "0px"},"linear");  
                cur=1;
                kontrolka=0;
             }

             //Kontrolki
            $('#controls li').removeClass("active");
            $('#controls li:contains(' + kontrolka + ')').addClass("active");
            //Koniec Kontrolek
        }, 3000);
        //Koniec Animowania Slidow

        //Klikanie Kontrolek
        $('#controls li').click(function() {
            var clicked = $(this).attr('id');
            $('#slider ul').animate({left: "-" + ((clicked-1)*width) + "px"},500,"linear"); 
            clearInterval(slider);
        });

    //Koniec klikania Kontrolek


});

いくつかの問題があります。カウントを1から4に制御し、5が1になり、この1がスライド番号5の画像であるため、何が問題なのか本当にわかりません。誰かが私を助けてくれますか?

PS私の悪い英語でごめんなさい

ok jsfiddle http://jsfiddle.net/Sck5w/ナビゲーションがどのように機能しているかを確認してください:1 2 3 4good5見逃してもう一度1

4

2 に答える 2

0

*強力なテキスト*あなたはほとんどkontrolkaでそれを持っていました、しかしそれからあなたはコントロールのためにcurを使いました。

curを-1に初期化します。

だから、どこにいても

cur=1

それはすべきです

cur=-1

jsfiddleで動作しました!

次に:代わりに

$('#slider ul').animate({left: "-" + (cur*width) + "px"},"linear");

使用する

$('#slider ul').animate({left: "-" + ((cur+2)*width) + "px"},"linear");

そして、kontrolkaは常にcur+1である必要があります。したがって、それを省略することもできます。

于 2012-11-15T20:52:38.923 に答える
0

最後のスライドで、varcurlを-1に設定します。

if(cur == slides){
     $('#slider ul').animate({left: "0px"},"linear");  
     cur=-1; ==>>> 
     kontrolka=1;
}
于 2012-11-15T20:57:01.230 に答える