Вопрос

Hi I have problem with my slider please visit this site and check http://paruyr.bl.ee/ after click on my arrows it becomes work in an asynchronous way, ones it changes very fast and then slow and it repeats. I think it is from start slider() and stop slider(). set and clear interval

var sliderPrev = 0,
sliderNext = 1;   


$("#slider > img").fadeIn(1000); 
startSlider();

function startSlider(){

    count = $("#slider > img").size();
    loop = setInterval(function(){

        if (sliderNext>(count-1)) {
            sliderNext = 0;
            sliderPrev = 0;
        };

        $("#slider").animate({left:+(-sliderNext)*100+'%'},900);
        sliderPrev = sliderNext;
        sliderNext=sliderNext+1;

    },6000)
}

function prev () {
    var newSlide=sliderPrev-1;
    showSlide(newSlide);
}

function next () {
    var newSlide=sliderPrev+1;
    showSlide(sliderNext);
}

function stopLoop () {
    window.clearInterval(loop);
}

function showSlide(id) {
    stopLoop();
    if (id>(count-1)) {
            id = 0;
        } else if(id<0){
            id=count-1;
        }

        $("#slider").animate({left:+(-id)*100+'%'},900);
        sliderPrev = id;
        sliderNext=id+1;
        startSlider();

};

$("#slider, .arrows").hover(function() {
    stopLoop()
}, function() {
    startSlider()
});

function onlyNext () {
        var newSlide=sliderPrev+1;
        onlyShowSlide(newSlide);
}

function onlyShowSlide(id) {

    if (id>(count-1)) {
            id = 0;
        } else if(id<0){
            id=count-1;
        }

        $("#slider").animate({left:+(-id)*100+'%'},900);
        sliderPrev = id;
        sliderNext=id+1;        
};
Это было полезно?

Решение

Try deleting all stopLoop calls and put it in the starSlider function

function startSlider(){

    count = $("#slider > img").size();
    stopLoop();
    loop = setInterval(function(){

        if (sliderNext>(count-1)) {
            sliderNext = 0;
            sliderPrev = 0;
        };

        $("#slider").animate({left:+(-sliderNext)*100+'%'},900);
        sliderPrev = sliderNext;
        sliderNext=sliderNext+1;

    },6000)
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top