2016-08-03 13 views
2

Ich möchte die Diashow starten oder stoppen, wenn der Bildlauf in der bestimmten Höhe ist.Wie kann ich einen Wechsel der Diashow durch window.scroll

Aber es läuft immer.

Wie kann ich es beheben?

Dank

$(document).ready(function() { 
    var timer, _showSpeed = 3000, _stop = false; 
    setTimeout(autoPlay, _showSpeed); 

    function autoPlay(){ 
    if($('a[href="#index"]').parent().hasClass('active')){ 
     $('.center:eq(0) .arrow.right').click(); 
    }else if($('a[href="#favorable"]').parent().hasClass('active')){ 
     $('.center:eq(1) .arrow.right').click(); 
    } 

    setTimeout(autoPlay, _showSpeed); 
    return false; 
} 

$(window).scroll(function() { 
    scrollTop = $(window).scrollTop(); 
    if(scrollTop > 80){ 
     _stop = true; 
     timer = setTimeout(autoPlay, _showSpeed); 
     clearTimeout(timer); 
    } 
    else{ 
     _stop = false; 
     clearTimeout(timer); 
    } 
    console.log(_stop); 
}); 

}); 

Antwort

1

Können Sie mit folgendem Code versuchen:

$(document).ready(function() { 
    var timer, _showSpeed = 3000, 
    _stop = false; 
    timer = setTimeout(autoPlay, _showSpeed); 

    function autoPlay() { 
    if(_stop) 
     return; 

    if ($('a[href="#index"]').parent().hasClass('active')) { 
     $('.center:eq(0) .arrow.right').click(); 
    } else if ($('a[href="#favorable"]').parent().hasClass('active')) { 
     $('.center:eq(1) .arrow.right').click(); 
    } 

    timer = setTimeout(autoPlay, _showSpeed); 
    return false; 
    } 

    $(window).scroll(function() { 
    scrollTop = $(window).scrollTop(); 
    if (scrollTop > 80) { 
     _stop = true; 
     clearTimeout(timer); 
    } else { 
     _stop = false; 
     timer = setTimeout(autoPlay, _showSpeed); 
    } 
    console.log(_stop); 
    }); 

}); 
Verwandte Themen